我刚刚从 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
被定义,这应该意味着库支持。
答案 0 :(得分:0)
解决方案是将-lcrypto
添加到gcc
链接器命令行。我想这些函数在某些时候被移动到他们自己的库中,或者其他东西让链接器在 Ubuntu 10 上找到它们。我要感谢RedHat指出这一点。它产生了与ubuntu gcc相同的错误,但还有其他建议将libcrypto.so
添加到命令行。