我打算在我的项目中使用 libcurl。我已经下载了库源,将其构建并集成到一个小型 POC 应用程序中。我能够构建和运行应用程序,而生成的 libcurl.dll 和 libcurl_imp.lib 文件没有任何问题。现在,当我在我的项目中集成相同的库时,我遇到了链接器错误。
6>foo.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt
6>foo.obj : error LNK2001: unresolved external symbol __imp__curl_easy_perform
6>foo.obj : 错误 LNK2001: 无法解析的外部符号 __imp__curl_easy_cleanup
6>foo.obj : error LNK2001: unresolved external symbol __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"
----------------------------------------------不工作--- ----------------------------------------------