我正在尝试静态编译libpcap和libssl(使用-static)并且链接器会给我这些错误:
more undefined references to `ASN1_const_check_infinite_end' follow myprogram line 0, external location: /lib64/libssl.a(ssl_asn1.o)
more undefined references to `BIO_test_flags' follow myprogram line 0, external location: /lib64/libssl.a(ssl_lib.o)
------------------------truncated for brevity----------------------------------
我正在使用ubuntu 11.4 i686_64和libssl.a上的nm结果与greping BIO_test_flags,是:U BIO_test_flags 这意味着该符号是未定义的符号,所有未定义的符号都处于相同的状态。
如何解决此链接问题? (欢迎任何想法或方法) [请注意,静态编译对我来说是必须的]
答案 0 :(得分:0)
据推测,缺少一个静态库。也许你可以通过观察来判断哪一个,但如果没有,这里有几种方法可以解决这个问题:
将-t
添加到您的链接命令,看看是否有帮助。
尝试strace
链接命令(请注意gcc
调用链接器作为子进程,因此您需要关注分支)并查看它找不到的库文件以及它在哪里查找对他们来说。