0

ライブラリに依存するように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/ldobjs/nginxauto/os/linux

これはnginx 1.19.2にあります(まあ、masternginxミラーからのブランチ)。

4

1 に答える 1