2014-12-02 30 views
0

我剛從Ubuntu 10升級到Ubuntu 14,現在在嘗試構建使用OpenSSL的應用服務器時出現鏈接錯誤。這隻發生在與多線程支持相關的功能上,例如CRYPTO_num_locks()。這些函數仍然存在於/ usr/include/openssl頭文件中,但似乎不在我擁有的庫中。我安裝通過: 的apt-get安裝libcurl4-的OpenSSL開發ubuntu上的多線程OpenSSL 14與OPENSSL_THREADS的鏈接錯誤

#define OPENSSL_THREAD_DEFINES 
#include <openssl/opensslconf.h> 

結果OPENSSL_THREADS被定義,這應該意味着庫支持。

回答

0

解決方法是在gcc鏈接器命令行中添加「-lcrypto」。我猜這些函數在某個時候被移到了自己的庫中,或者其他的東西讓連接器在Ubuntu 10上找到它們。我必須感謝RedHat指出這一點。它產生了與ubuntu gcc相同的錯誤,但還提供了將libcrypto.so添加到命令行的其他建議。