1

スタティック ライブラリ(.a)を libtool とリンクするには?

mod_shib_22.so3 つの RSA ライブラリを使用する Apache モジュール ( ) をlibcertc.a作成しています。これらのライブラリlibcertcsp.alibbsafe.a リンクして-lcertc -lcertcsp -lbafeいますが、モジュールのロード中に「シンボル未定義」エラーが発生します。

./apachectl -k stop httpd: Syntax error on line 426 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/lib64/shibboleth/mod_shib_22.so into server:  /usr/local/lib64/shibboleth/mod_shib_22.so: undefined symbol: T_GetDynamicList

Makefile で次の行を使用しています。

LDFLAGS = -L../../libraries/Crypto-C-6.4.0.3/lib/linux_lsb30_x86_64 -L../../libraries/Cert-C-2.9.0.0/lib/LinuxLSB30_x86_64/release_mt
LIBOBJS = 
LIBS = -lxerces-c -L/usr/local/lib64 -llog4shib -lnsl -lcertc -lcertcsp -lbsafe -ldl
4

1 に答える 1

1

DSO(この場合はApacheモジュール)を静的ライブラリにリンクすることは保証されておらず、静的ライブラリ内のオブジェクトがどのように構築されているかによってはおそらく機能しないでしょう。通常、静的ライブラリ内のオブジェクトは、位置に依存しないコードを有効にして構築されていませんが、DSOには位置に依存しないコードが必要です。

于 2013-01-24T19:49:23.990 に答える