C ++ Codeblocks + libcurl最终会出现链接错误

时间:2016-11-05 15:48:36

标签: c++ curl codeblocks libcurl

您好我是C ++初学者,我想了解http请求...  我选择了cURL,因为我之前使用过PHP经验。 我从cURL网站下载了这个版本到 C:\ libs
    Win64 x86_64 7zip 7.51.0二进制SSL SSHViktorSzakáts1.81MB

这是我迄今为止在Codeblocks上所做的:

  1. 在全局编译器设置/搜索目录/编译器下,我添加了以下路径: C:\库\卷曲7.51.0-Win64的-的mingw \包括\卷曲

  2. 在全局编译器设置/搜索目录/链接器下,我添加了以下路径: C:\库\卷曲7.51.0-Win64的-的mingw \ lib中

  3. 在全局编译器设置/链接器设置下,我添加了以下路径: C:\库\卷曲7.51.0-Win64上,MinGW的\ LIB \ libcurl.a C:\库\卷曲7.51.0-Win64的-的mingw \ lib中\ libcurldll.a

  4. - 在全局编译器设置/编译器设置下,从以前检查此框: 让g ++遵循C ++ 11标准......(不知道这是否重要......)

    另外,因为我很绝望,我将C:\ libs \ curl-7.51.0-win64-mingw的内容复制到C:\ Program Files(x86)\ CodeBlocks \ MinGW,这一步对我没有意义,但我在网上找到了它,所以我试过......

    现在我正在运行此代码:

    #include <cstring>
    #include <string>
    #include <iostream>
    #include <stdio.h>
    #include <curl.h>
    #include <easy.h>
    using namespace std;
    
    int main(){
    
    CURL* curl = curl_easy_init();
    if(!curl){
            cout << "error" << endl;
        }else{
         cout << "good job!" << endl;
         curl_easy_cleanup(curl);
        }
    };
    

    我收到了这个错误:

    undefined reference to `_imp__curl_easy_init'
    undefined reference to `_imp__curl_easy_cleanup'
    error: ld returned 1 exit status
    Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) 
    

    由于某种原因,包括include curl / curl.h不起作用,只有它的工作方式包括curl.h,同样适用于easy.h。

    任何建议表示赞赏! 提前谢谢!

1 个答案:

答案 0 :(得分:3)

您在构建应用程序时未在-DCURL_STATICLIB添加CFLAGS的情况下与静态libcurl(在Windows上)进行链接。

也就是说,必须在包含curl标头之前定义CURL_STATICLIB

卷曲常见问题项Link errors when building libcurl on Windows

中描述