如何将静态库(.a)
与libtool链接?
我正在创建一个使用三个RSA库mod_shib_22.so
,libcertc.a
和libcertcsp.a
的apache模块(libbsafe.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
答案 0 :(得分:1)
无法保证将DSO(本例中为Apache模块)与静态库相关联,并且可能无法正常工作,具体取决于构建静态库中的对象的方式。通常,静态库中的对象不是在启用position independent code的情况下构建的,但DSO 需要与位置无关的代码。