Opensslをgccプログラムで使用しようとしていますが、機能しません。
_g++ server.cpp /usr/lib/libssl.a -o server
_
_-l
_オプションを使用した場合と同様に、エラーメッセージが表示されます。 opensslとリンクするには、コマンドラインで何を入力する必要がありますか?ファイル_/usr/lib/libssl.a
_は存在しますが、それでもリンカーエラーno such function MD5() exists
が発生します。
表示されている正確なエラーを知らなければ、正確な解決策を提供することは困難です。これが私の最善の試みです。
提供された情報から、md5
内のlibssl.a
関数への参照が見つからないため、リンカーが失敗しているように見えます。この関数は実際にはlibcrypto
にあると思うので、このライブラリも指定する必要があるかもしれません。
g++ server.cpp -L/usr/lib -lssl -lcrypto -o server
あなたまたはothersは、この記事 developerWorks の記事が役立つ場合があります。
OpenSSLとC/C++を使い始めるために知っておく必要のあるほとんどの事項を説明しています。同じ手順のほとんどを実行していることがわかった場合は、何が必要かを確認するのに役立つことがあります。
幸運を。
EclipseでIDEプロジェクトのプロパティを選択-> c/c ++ビルド->設定gcc cリンカー(ツール設定から)->ライブラリ検索パスに追加(-L)
/ usr/lib -lssl -lcrypto
ライブラリの場所は固定されていません。私の場合(Ubuntu 18.04)、. aファイルは_/usr/lib/x86_64-linux-gnu/
_にあります。だからここに完全な手順があります:
1) ライブラリをインストール 、
_Sudo apt install libss-dev
_
2) インストールされているファイルを確認 、
_dpkg-query -L libssl-dev
_
3)gccフラグ-L(library directory) -l(library name)
を変更します。たとえば、
_gcc XXX.c XXXXX.c -L/usr/lib/x86_64-linux-gnu/ -lcrypto -lssl
_
受け入れられた回答に加えて、AES-CCMのOpenSSLの例をコンパイルできませんでした。
https://github.com/openssl/openssl/blob/master/demos/evp/aesccm.c
それを機能させるには、さらに2つのことを追加する必要がありました。
-ldl
-pthread
(-lpthreadを使用してライブラリを直接追加することは 非推奨 )