2011-06-22 14 views
0

私はMAC用のTLSクライアントを開発しています。私はMACOSX(Linux上でうまく動作します)でプロジェクトを構築していますが、特にopensslライブラリを使用しています。openSSL mac undefined symbol

ここで私はあなたが私が対処に役立つことを願って、私のコンソールのエラーです:

gcc -lpthread -o *.o /opt//local/var/macports/software/openssl97/0.9.7m_0/opt/local/lib/openssl97/lib/libssl.a /opt//local/var/macports/software/openssl97/0.9.7m_0/opt/local/lib/openssl97/lib/libcrypto.a -ldl 
Undefined symbols: 
    "_SSL_CTX_set_info_callback", referenced from: 
     _MTLSServer_Setup in MTLSServer.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
make: *** [mtls_server] Error 1 

のOpenSSL 0.9.7であなたの助け

答えて

1

SSL_CTX_set_info_callbackのおかげでは、マクロで、あなたのコードがリンクしようとしているが、機能。これはおそらく、ヘッダーへの正しいパスがないことを意味します。

私はあなたのコマンドラインで他のもののために少し困惑してる:

  • なぜあなたは静的にOpenSSL 0.9.7の古いバージョンとリンクされています。 Mac OS Xの最近のバージョンには0.9.8が含まれています。
  • -o *.oは、それが-o something *.o
  • -lpthread引数はlibcryptoの後にあるべきである必要があり、エラーのようです。
+0

彼はGCCを使ってオブジェクトファイルをリンクするために 'ld'を呼び出しています。彼はその命令でそれらを編集していない。 – jww

+0

'/ opt // local/var/macports/software/openssl97/0.9.7m_0/opt/local/lib/openssl97/lib/libssl.a'は本当に奇妙に見えます。あなたはそれらの道を確信していますか?私のfind/opt/local/-iname libssl.aの結果は '/ opt/local // lib/libssl.a'です。 – jww