2

UbuntuでEVP_*関数を使用するコードをビルドしようとしていますが、ビルドすると、恐ろしい「未定義の参照」エラーが発生します。

Ubuntu11.10を使用しています。

次の行は私がコンパイルする方法です:

g++ -lcrypto -lssl  *.cpp  -o IOService
[...]
crypto.cpp:(.text+0x8): undefined reference to `EVP_md5'
[...]

cppファイルにはopenssl/evp.hが含まれています。

libssl1.0.0-dbgパッケージをインストールしましたが、これらのライブラリは/ usr / lib / debug / lib / i386-linux-gnu /にインストールされ、リンカーがそれらを見つけられないようです。私は.soファイルをソフトリンクしてコピーしようとしましたが、役に立ちませんでした(そして、これは道ではないと感じています)。

4

1 に答える 1

3

ldはワンパスリンカーです。つまり、ライブラリを使用するオブジェクトファイルのg++ *.cpp -o IOService -lcryptoにライブラリを追加する必要があります(必要なのがmd5だけの場合は、libsslは必要ないと思います)。

于 2012-04-10T15:28:38.973 に答える