提问人:hmiguel 提问时间:6/20/2015 更新时间:6/23/2015 访问量:1137
编译 Curl Visual Studio - 未解析的外部符号
Compile Curl Visual Studio - unresolved external symbol
问:
我需要使用 libcurl 的静态库,我找到了这个生成库的 github 代表。
现在,我正在尝试使用静态库 libcurl_a.lib 编译一段使用 curl 的简单代码,但没有成功。
起初,我错过了 -DCURL_STATICLIB 标志,并且出现了一些未定义的引用错误:
undefined reference to `curl_easy_init'
undefined reference to `curl_easy_setopt'
undefined reference to `curl_easy_setopt'
undefined reference to `curl_easy_perform'
undefined reference to `curl_easy_strerror'
undefined reference to `curl_easy_cleanup'
标志解决了它,但现在我得到了这些:
unresolved external symbol __imp__strtoll
unresolved external symbol __imp__strtoll
unresolved external symbol __imp__strtoll
unresolved external symbol __imp__strtoll referenced in function _Curl_ftp_parselist
unresolved external symbol __imp__strtoll
unresolved external symbol __imp__strtoll
unresolved external symbol __imp__strtoll
unresolved external symbol __imp__strtoll
unresolved external symbol __imp__GetTickCount64@0 referenced in function _curlx_tvnow
unresolved external symbol __imp__InitializeCriticalSectionEx@12 referenced in function _init_thread_sync_data
unresolved external symbol __ltod3 referenced in function _getinfo_double
unresolved external symbol __ltod3
unresolved external symbol __dtol3 referenced in function _Curl_pgrsUpdate
unresolved external symbol ___report_rangecheckfailure referenced in function _base64_encode
我被困在这里,我不知道如何解决这个未解决的外部符号。
有人可以帮助我吗?谢谢
答:
0赞
Vivian De Smedt
6/20/2015
#1
可能是您链接到了错误的kernel32.lib版本。你做 x64 构建吗? 如果是这样,则需要更正库路径。
评论
0赞
myalc
1/7/2016
就我而言;有“..\..\..\lib\$(Configuration)\Kernel32.lib“,通过删除它,我让 VS Studio 找到 Kernel32.lib 的正确版本。
0赞
hmiguel
6/23/2015
#2
溶液:
github 存储库 .bat 文件存在问题,似乎仅适用于最新的 VS 版本。我使用了较旧的 build.bat 版本并且工作正常。
供参考:使用 VS 2005 编译。
评论