2017-01-09 146 views
0

今天早上我更新了我的OpenSSL版本到1.0.1f,同時編譯我正在工作的項目,我得到了這個OpenSSL錯誤鏈接:OpenSSL 1.0.1f和「未定義的引用符號'SSL_state @@ OPENSSL_1.0.0」

/usr/bin/ld: janus-dtls.o: undefined reference to symbol '[email protected]@OPENSSL_1.0.0' //lib/x86_64-linux-gnu/libssl.so.1.0.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status

我就在網上找,我發現的唯一的事情上的線索是,我需要編譯-lssl和-lcrypto項目。 但事情是我做的媒體鏈接:

./Makefile:598:JANUS_LIBS = -pthread -L/usr/local/lib -lnice -lgthread-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -ljansson -lssl -lcrypto -lsofia-sip-ua

所以,我猜我會問DPKG也許我'忘卻的東西。下面是答案:

$ pkg-config --libs openssl

-L/usr/local/lib -lssl -lcrypto 

這也正是我做什麼。

有沒有人遇到過這個錯誤,並試圖解決它?

或者我做錯了什麼,我看不到?

任何幫助將不勝感激。

+0

請勿發佈圖片的文字! – Olaf

+0

另請參閱[奇怪的鏈接錯誤:從命令行丟失的DSO](http://stackoverflow.com/q/19901934),[DSO從命令行丟失](http://stackoverflow.com/q/24096807)和[鏈接錯誤:命令行中缺少DSO](http://stackoverflow.com/q/24989432)。 – jww

+0

謝謝你的鏈接。 –

回答

0

符號請求在鏈接它們之前進行,所以libs的順序是嚴格的。

如果力霸有LibB需要訂貨會

GCC mod1.o mod2.o -lLibA -lLibB

仔細檢查makefile中所有的庫不缺的象徵。

相關問題