2011-12-19 37 views
0

我想要编译libpcap的和静态的libssl(用-static)和链接给我拿这些错误:为什么我收到用gcc未定义引用错误 - 静态链接

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结果与BIO_test_flags进行比较,结果如下:U BIO_test_flags 这意味着此符号是未定义的符号,并且所有未定义符号处于相同状态。

我该如何解决这个链接问题? (欢迎任何想法或方法) [请注意,静态编译对我来说是必须的]

+0

我认为这是Ubuntu 11.04和x86_64? – 2011-12-19 17:03:05

+0

是Ubuntu 11.04和x86_64。 – user1106291 2011-12-19 17:06:48

回答

0

推测其中一个静态库丢失。也许你可以通过查看来判断,但如果没有,可以通过以下几种方法来确定:

-t添加到您的链接命令中,看看是否有帮助。

尝试strace链接命令(请注意,gcc将链接器作为子进程调用,因此您需要遵循叉子)并查看它没有找到的库文件以及它在哪里找它们。

相关问题