我刚刚从Ubuntu 10升级到Ubuntu 14,现在当我尝试构建使用OpenSSL的应用服务器时会出现链接错误。这只发生在与多线程支持相关的函数上,例如CRYPTO_num_locks()。这些函数仍然存在于/usr/include/openssl头中,但似乎不在我所拥有的库中。我通过以下方式安装:
apt-get install libcurl4-openssl-dev
#define OPENSSL_THREAD_DEFINES
#include <openssl/opensslconf.h>结果被定义为OPENSSL_THREADS,这意味着库的支持。
发布于 2014-12-02 23:30:07
解决方案是将-lcrypto添加到gcc链接器命令行。我猜这些函数在某个时候被转移到了自己的库中,或者是让链接器在Ubuntu 10上找到它们。我要感谢RedHat指出了这一点。它产生了与ubuntu相同的错误,但附加了将libcrypto.so添加到命令行的建议。
https://stackoverflow.com/questions/27260191
复制相似问题