0

作業中のプロジェクトの OpenSSL ライブラリにリンクしようとすると、LNK 2019 が表示されます。OpenSSL ライブラリをコンパイルしてテストを実行したところ、すべて合格しました。私はopenssl.exeで遊んで、MD5ハッシュを正しく作成するようにしました。API が提供する関数を使用しようとすると、認識されません。.lib ファイルで dumpbin -headers を使用して、使用していたファイルに使用していた関数の正しい参照が含まれていることを確認しました。

正しいファイルとパスを含めるようにしました (ここには描かれていないヘッダーも含めました)。

ここに画像の説明を入力

実際のファイルとそのパスは次のとおりです

ここに画像の説明を入力

実際のエラーは次のとおりです。

ここに画像の説明を入力

エラー LNK2019: 未解決の外部シンボル _EVP_MD_CTX_create が関数 _main で参照されました エラー LNK2019: 未解決の外部シンボル _EVP_DigestInit_ex が関数 _main で参照されました エラー LNK2019: 未解決の外部シンボル _OpenSSL_add_all_digests が関数 _main で参照されました

これを修正するにはどうすればよいですか? ファイルを正しい場所に配置しましたか、それともインクルードを忘れましたか? 私はすでにこれを修正するために数日を費やしてきました.これは私の最後の手段です:/

Microsoft Visual Studio 2012 を使用しています

4

2 に答える 2

0

これは、呼び出し規則で問題になる可能性があります。

呼び出し規約については、プロジェクトの設定を確認してください。

OpenSSL は /Gd オプションを使用してコンパイルします。これは、関数が __cdecl 呼び出し規約になることを意味します。

呼び出し規約を /Gd に変更するか、または __cdecl で使用している OpenSSL 関数の署名を前に付けることができます。

これが役立つかもしれないと信じています。このリンクでは、呼び出し規約を変更する方法について説明しています。

これが役立つかどうかを確認してください。

于 2013-09-09T04:23:16.623 に答える