错误 LNK2019:无法解析的外部符号 libcurl Visual studio
error LNK2019: unresolved external symbol libcurl Visual studio
是的,我知道这是我假设的 libcurl.lib 的链接器错误?
我试过从不同的来源下载 libcurl 并将其放在不同的地方。
这些是错误:
LibFuckingCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_strerror referenced in function _main
还有4个同类。
这是示例代码
#include <stdio.h>
#include <curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
项目属性
C/C++
常规 -> 附加包含目录 -> C:/Project/libcurl/include
链接器
常规 -> 附加库目录 -> C:/Project/libcurl/lib
输入 -> 附加依赖项 -> libcurl.lib
命令行:在这里我可以读到 libcurl.lib 是
Assuming this structure:
Project
lib
libcurl.dll
libcurl.lib
... dll's
include
curl.h
curlbuild.h
... all the header files
VisualStudio (where VS puts the project)
我还尝试将 include 放入目录和库路径的 VC++ 选项中。我已经阅读了很多指南、帖子和有同样问题的人,但忘了包括 libcurl.lib
我下载了 libcurl 的一个预构建版本,因为昨天 CMake 差点杀了我。
使用静态库Visual Studio 2013
我现在开始工作了,多亏了一些天使。
找到这个 git 回购:https://github.com/blackrosezy/build-libcurl-windows
运行 .bat 也像之前下载的一样生成静态库。
如何:
运行 存储库中包含的 .bat。
libcurl 将在包含文件夹 include 和 lib 的第三方子文件夹中找到。
新建一个Visual Studio项目
属性 -> VC++ -> 添加目录 thirdparty/include(路径)
属性 -> VC++ -> 添加库 thirdparty/lib/static-debug(路径)
属性 -> C++ -> 预处理器 -> 添加 CURL_STATICLIB
Linker -> General -> Additional Library Directories Library -> thirdparty/lib/static-debug(路径)
Linker -> Input add: C:\xxx\xxx\xxx\build-libcurl-windows\third-party\libcurl\lib\static-debug\libcurl_a_debug.lib (lib文件的完整路径)
是的,我知道这是我假设的 libcurl.lib 的链接器错误? 我试过从不同的来源下载 libcurl 并将其放在不同的地方。
这些是错误:
LibFuckingCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_strerror referenced in function _main
还有4个同类。
这是示例代码
#include <stdio.h>
#include <curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
项目属性 C/C++ 常规 -> 附加包含目录 -> C:/Project/libcurl/include
链接器 常规 -> 附加库目录 -> C:/Project/libcurl/lib
输入 -> 附加依赖项 -> libcurl.lib
命令行:在这里我可以读到 libcurl.lib 是
Assuming this structure:
Project
lib
libcurl.dll
libcurl.lib
... dll's
include
curl.h
curlbuild.h
... all the header files
VisualStudio (where VS puts the project)
我还尝试将 include 放入目录和库路径的 VC++ 选项中。我已经阅读了很多指南、帖子和有同样问题的人,但忘了包括 libcurl.lib
我下载了 libcurl 的一个预构建版本,因为昨天 CMake 差点杀了我。
使用静态库Visual Studio 2013
我现在开始工作了,多亏了一些天使。 找到这个 git 回购:https://github.com/blackrosezy/build-libcurl-windows
运行 .bat 也像之前下载的一样生成静态库。
如何:
运行 存储库中包含的 .bat。
libcurl 将在包含文件夹 include 和 lib 的第三方子文件夹中找到。
新建一个Visual Studio项目
属性 -> VC++ -> 添加目录 thirdparty/include(路径)
属性 -> VC++ -> 添加库 thirdparty/lib/static-debug(路径)
属性 -> C++ -> 预处理器 -> 添加 CURL_STATICLIB
Linker -> General -> Additional Library Directories Library -> thirdparty/lib/static-debug(路径) Linker -> Input add: C:\xxx\xxx\xxx\build-libcurl-windows\third-party\libcurl\lib\static-debug\libcurl_a_debug.lib (lib文件的完整路径)