2017-01-09 4 views
0

今朝私は自分のOpenSSLバージョンを1.0.1fに更新しました。現在作業中のプロジェクトをコンパイルしています。リンカ: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

だから、私は何かを忘却i'am多分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の順序は厳密です。

LIBAはLibBは順序がメイクファイル内のすべてのライブラリが欠落していないことを

gccのmod1.o mod2.o -lLibA -lLibB

ダブルチェックになる必要があるシンボルを持っている場合。