将静态库与libtool链接

时间:2013-01-24 15:05:10

标签: c++ linux static-libraries libtool

如何将静态库(.a)与libtool链接?

我正在创建一个使用三个RSA库mod_shib_22.solibcertc.alibcertcsp.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

1 个答案:

答案 0 :(得分:1)

无法保证将DSO(本例中为Apache模块)与静态库相关联,并且可能无法正常工作,具体取决于构建静态库中的对象的方式。通常,静态库中的对象不是在启用position independent code的情况下构建的,但DSO 需要与位置无关的代码。