1

我正在尝试静态编译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 和一个带有 greping BIO_test_flags 的 libssl.a 上的 nm 结果是:U BIO_test_flags 这意味着这个符号是一个未定义的符号,并且所有未定义的符号都处于相同的状态。

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

4

1 回答 1

1

可能缺少其中一个静态库。也许您可以通过查看来判断哪个,但如果不是,这里有几种方法可以弄清楚:

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

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

于 2011-12-20T21:52:55.557 回答