2009-12-12 51 views
20

私はgccプログラムでopensslを使用しようとしていますが、動作していません。GCCでOpenSSLを使用するには?

g++ server.cpp /usr/lib/libssl.a -o server 

は、-lオプションの場合と同様にエラーメッセージを表示します。 opensslとリンクするには、コマンドラインで何を入力する必要がありますか?ファイル/usr/lib/libssl.aが存在しますが、それでもなおリンカーエラーno such function MD5() existsが表示されます。

+1

-ldl

  • pthreadライブラリは、POSIXスレッドのサポートを使用するにはあなたが投稿したコマンドで。そして大文字であなたの質問を投稿しないでください - 叫び声は失礼です。 –

  • +2

    'g ++ server.cpp -L/usr/lib -lssl -o server'のようなものは、このトリックを行うべきです。あなたが得ている、そして誰かが助けることができる正確なエラーを投稿してください。そして私は叫ぶことにNeilを二番目;) –

    +0

    '/ usr/lib/libcrypto.a'がありません。 'libcrypto'は' libssl'が使う暗号を提供します。 '/usr/lib/libssl.a/usr/lib/libcrypto.a'のように、これらの両方をこの正確な順序で追加してください。 – jww

    答えて

    22

    あなたが見ている正確なエラーを知らずに、正確な解決策を提供することは困難です。ここに私の最高の試みです。

    あなたが提供した情報から、libssl.aのmd5関数への参照が見つからないため、リンカが失敗したように聞こえます。私はこの関数が実際にlibcryptoにあると考えていますので、このライブラリも指定する必要があります。

    g++ server.cpp -L/usr/lib -lssl -lcrypto -o server

    12

    あなたや他の人は役に立ちこの記事developerWorks記事を見つけることがあります。

    をそれはほとんどの説明OpenSSLとC/C++で地面から降りるために知る必要があること。同じ手順の大部分を実行していることがわかった場合は、何が必要なのかを理解するのに役立ちます。

    幸運。 EclipseのIDEで

    +1

    3つのリンクは同じです。 –

    5

    プロジェクトプロパティ]を選択 - > [C/C++ビルド - > [設定] gccのCリンカーを(ツール設定から) - >ライブラリ検索パス(-L)

    は/ usr/libにに追加受け入れられた答えの上に

    0

    -lcrypto -lssl、私はAES-CCMためにOpenSSLの例をコンパイルすることができませんでした:

    https://github.com/openssl/openssl/blob/master/demos/evp/aesccm.c

    それは私は2つのより多くのものを追加する必要が動作するように:

    • 動のリンクライブラリ:私は-lの使用が表示されていない-pthread(追加直接-lpthreadとライブラリがあるnot recommended
    関連する問題