ライブラリに依存するようにnginxモジュールを変更しました.... libxが必要なライブラリを呼び出しましょう。
auto/os/linux
が存在するかどうかを検出できるように変更しましたlibx
...次のようなものを追加します。
+ngx_feature="libx"
+ngx_feature_name="NGX_HAVE_LIBX"
+ngx_feature_run=no
+ngx_feature_incs="#include <libx.h>"
+ngx_feature_path=
+ngx_feature_libs=-lx
+ngx_feature_test="libx_init();"
+. auto/feature
次に、モジュール コードで次のような#if
チェックを行います。NGX_HAVE_LIBX
#if (NGX_HAVE_LIBX)
libx_init();
#endif
そして、それは魅力のように機能します....実行するauto/configure
と、ライブラリが次のようなもので検出されます。
checking for libx... found
そして、リンク時にコンパイルされますが、最終的なバイナリを構築するときに-lx
送信されるフラグの一部として含まれていません。機能が検出された後、Makefile の作成時にリンク フェーズに自動的に追加されると予想していましたが、明らかにそうではないので、何かが足りないことがわかります...追加の手順は何ですか?それをやってのける?cc/ld
objs/nginx
auto/os/linux
これはnginx 1.19.2にあります(まあ、master
nginxミラーからのブランチ)。