プロジェクトで libcurl を使用する予定です。ライブラリ ソースをダウンロードし、小さな POC アプリケーションにビルドして統合しました。生成された libcurl.dll および libcurl_imp.lib ファイルで問題なくアプリケーションをビルドして実行できます。プロジェクトに同じライブラリを統合すると、リンカー エラーが発生します。
6>foo.obj: エラー LNK2001: 未解決の外部シンボル __imp__curl_easy_setopt
6>foo.obj: エラー LNK2001: 未解決の外部シンボル __imp__curl_easy_perform
6>foo.obj: エラー LNK2001: 未解決の外部シンボル __imp__curl_easy_cleanup
6>foo.obj: エラー LNK2001: 未解決の外部シンボル __imp__curl_global_init
6>foo.obj: エラー LNK2001: 未解決の外部シンボル __imp__curl_easy_init
CURL_STATICLIB定義の追加、ライブラリの追加、/MT への変更、ライブラリをリリース ディレクトリにコピーするなど、あらゆる方法の回避策を調査して試しましたが、何も機能していないようです。私の手順でアプローチ#1と#2の唯一の違いを見ることができる限り、#1はlibcurl.dllを使用するコンソールアプリケーションですが、メインプロジェクトではこれはlibcurl.dllにリンクしようとしている別のdllです。 . そのために、アプローチを変更する必要はありますか? 生成された同じマルチスレッド DLL /MD ファイルを両方に使用できますか (/MT を試しても成功しませんでした)? 他のアイデアはありますか?
以下はリンカーオプションです。
- - - - - - - - - - - - - - - - - - - - - - - - -働く--------------------------------------------------
/OUT:"C:\SampleFTP\Release\SampleFTP.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\SampleFTP\SampleFTP\Release" /MANIFEST /MANIFESTFILE:"Release\SampleFTP.exe.intermediate.manifest" /DEBUG /PDB:"c:\SampleFTP\release\SampleFTP.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /MACHINE:X86 /ERRORREPORT:PROMPT libcurl_imp.lib kernel32.lib user32.lib gdi32. lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
- - - - - - - - - - - - - - - - - - - - - - - - -働く--------------------------------------------------
----------------------------------------------動作しない --- ----------------------------------------------
/OUT:".......\nt\Win32\Release/foo__tests.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\FullLibPath\libcurl_libs" /LIBPATH:"......\ nt\Win32\Release" /DLL /MANIFEST /MANIFESTFILE:".\foo__tests\Win32\Release\foo__tests.dll.intermediate.manifest" /DEBUG /PDB:".......\nt\Win32\Release/ foo_tests.pdb" /OPT:REF /OPT:ICF /LTCG /IMPLIB:".......\nt\Win32\Release/foo_tests.lib" /MACHINE:X86 /ERRORREPORT:PROMPT odbc32.lib odbccp32.lib util_process.lib wsock32.lib Version.lib libcurl_imp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ". .....\nt\win32\release\otherlib1.lib" "......\nt\win32\release\otherlib2.lib"
----------------------------------------------動作しない --- ----------------------------------------------