ubuntu 14上的多线程OpenSSL与OPENSSL_THREADS链接错误

时间:2014-12-02 22:23:35

标签: multithreading ubuntu openssl

我刚刚从 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被定义,这应该意味着库支持。

1 个答案:

答案 0 :(得分:0)

解决方案是将-lcrypto添加到gcc链接器命令行。我想这些函数在某些时候被移动到他们自己的库中,或者其他东西让链接器在 Ubuntu 10 上找到它们。我要感谢RedHat指出这一点。它产生了与ubuntu gcc相同的错误,但还有其他建议将libcrypto.so添加到命令行。