1

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

我正在创建一个使用三个 RSAmod_shib_22.solibcertc.a的Apache模块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 回答