使用CURL库构建项目时出错



使用CURL构建项目时出错,使用g++收集,版本

g++.exe (Rev5, Built by MSYS2 project) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

CURL是使用MSYS2。

代码:

#include <iostream>
#include <curlcurl.h>
#define CURL_STATICLIB
using namespace std;
int main()
{
CURL* curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.com");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
exit(-1);
curl_easy_cleanup(curl);
}
return 0;
}

错误:

undefined reference to `__imp_curl_easy_init'
undefined reference to `__imp_curl_easy_setopt' 
undefined reference to `__imp_curl_easy_perform'
undefined reference to `__imp_curl_easy_cleanup'

命令:

g++ main.cpp -lcurl -static

我做错了什么?更新,添加新错误:

undefined reference to `__imp_getnameinfo'
undefined reference to `__imp_ntohs'
undefined reference to `gai_strerrorW'
undefined reference to `__imp_freeaddrinfo'
undefined reference to `__imp_WSAStartup'

首先,您应该在头文件路径中始终使用正斜杠。其次,您不应该静态地链接到libcurl——只动态链接要容易得多;动态链接使程序启动更快,更易于使用。事实上,我试图静态地链接一个libcurl程序,但链接它是一场噩梦(在MSYS2上(。

tl;dr:静态链接到libcurl是不值得的。

最新更新