无法与libcurl链接 - 对多个函数的未定义引用

时间:2013-04-22 08:31:39

标签: c++ gcc curl g++

我目前在Windows 7 x64上编译C ++程序时遇到问题。

我无法以各种方式编译:

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'

守则本身:

#include <curl/curl.h>

int main(int argc, char** argv)
{
CURL *curl;
CURLcode res;

curl = curl_easy_init();

if(curl)
{
    curl_easy_setopt(curl, CURLOPT_URL, "http://steamcommunity.com");
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

    res = curl_easy_perform(curl);

    if(res != CURLE_OK)
    {
        fprintf(stderr, "curl_easy_perform() failed %s\n", curl_easy_strerror(res));
    }

    curl_easy_cleanup(curl);
}
else
{
}
return 0;
}

我正在编译:

g++ -DCURL_STATICLIB -g -o curlprogram curlprogram.cpp -LJ:\Projektpath -lcurl

我在-L指定的Path中添加了libcurl.a,并将libcurl.dll放入C:\ Windows \ System32。

2 个答案:

答案 0 :(得分:1)

* .a不用于Windows二进制文件,将libcurl_imp.lib放入-L路径并使用-lcurl_imp。尝试不使用-DCURL_STATICLIB的链接共享库

答案 1 :(得分:0)

首先转到属性&gt;配置属性&gt; VC ++目录&gt;包括目录。在这里,添加要在解压缩的Libcurl文件的include目录中找到的curl目录(C:\ ... \ libcurl-7.19.3-win32-ssl-msvc \ include \ curl)。

转到VC ++目录&gt;图书馆目录。添加包含curllib_static.lib,curllib.dll和curllib.lib的调试目录(C:\ Users \Édouard\ Documents \ Visual Studio 2010 \ LibCurl \ lib \ Debug)。

仍然在配置属性中,转到链接器&gt;输入&gt;额外的依赖关系。在这里,您必须添加curllib.lib文件(C:\ ... \ lib \ Debug \ curllib.lib)。输入lib文件的名称。

下一步是在项目的Debug目录中添加curllib.dll,libeay32.dll,openldap.dll和ssleay32.dll。所有这些都可以在Libcurl的根目录中找到。