3

このページhttp://slproweb.com/products/Win32OpenSSL.htmlから Win64 OpenSSL v1.0.1b と Visual C++ 2008 Redistributables をインストールし、コンパイラ ( C:\OpenSSL-Win64\include) とリンカー パス ( C:\OpenSSL-Win64\binC:\OpenSSL-Win64\libC:\OpenSSL-Win64) を Code::Blocks に追加しましたが、まだ私のプログラムをコンパイルできません。

ソースコード:

#include <cstring>
#include <openssl/blowfish.h>

int main() {
    const char * key = "aaabbbcccdddeeefffggghh";
    BF_KEY bfKey;

    BF_set_key(&bfKey, strlen(key), (const unsigned char *) key);

    return 0;
}

エラー:

obj\Release\main.o:main.cpp|| undefined reference to `BF_set_key'|

-lssl-lopenssl-llibssl、を追加しようとしまし-lcryptoたが、うまくいきません。次に、別のエラーが表示されます。

ld.exe||cannot find -lssl|

私には(そしてGoogleも)何をすべきかわかりません。私が間違っていることはありますか?

4

2 に答える 2

0

適切に構成したかどうかはわかりません。ライブラリディレクトリの設定に加えて、プロジェクトがビルドオプションのどこかに使用しているライブラリを追加する必要があるようです。これは役に立ちますか?http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/

于 2012-05-10T02:17:12.013 に答える
0

Code::Blocks で GCC コンパイラ (MinGW) を使用しているため、ライブラリ検索ディレクトリ (C:\OpenSSL-Win64\lib) を C:\OpenSSL-Win64\lib\MinGW に変更し、ライブラリをリンクする必要があります。 -leay32を使用する必要があるBlowfish機能があります(あなたの場合はおそらく-leay64です)。

ディレクトリ C:\OpenSSL-Win64\lib\MinGW 内には、各ライブラリ (libeay32.a/libeay64.a および ssleay32.a/ssleay64.a) によってエクスポートされた関数のリストを含む .def 拡張子を持つ 2 つのファイルがあります。ところで、-l オプションを使用する場合、ファイルは lib.a という名前にする必要があります。ライブラリ ssleay32.a/ssleay64.a のいずれかの関数を使用する場合は、ファイルを直接リンクする (たとえば、C:\OpenSSL-Win64\lib\MinGW\ssleay32.a) か、名前に lib を追加する必要があります。ファイルの。

于 2012-05-10T03:02:54.120 に答える