【问题标题】:Having trouble trying to link libcurl尝试链接 libcurl 时遇到问题
【发布时间】:2015-11-17 10:24:40
【问题描述】:

我正在尝试为 Bloodshed Dev C++ 安装 libcurl,但遇到了几个问题。 我已将 curl 目录包含在 Dev-Cpp\MinGW\include 下,并将库文件(我自己使用 MinGW 编译)放置在 Dev-Cpp\MinGW\lib 目录中。我已将我正在使用的所有库添加到 Project> Project Options> Parameters 下的 Linker 选项卡中。

这是我用来测试 libcurl 的代码:

    #define CURL_STATICLIB
#include "curl/curl.h"
#include <stdio.h>
#include <stdlib.h>


int main(void) {
    CURLcode ret;
    CURL *curl = curl_easy_init();
    if (curl == NULL) {
        fprintf(stderr, "Failed creating CURL easy handle!\n");
        exit(EXIT_FAILURE);
    }

    /*Attempt to get Facebook*/
    ret = curl_easy_setopt(curl, CURLOPT_URL, "http://www.facebook.com");
    if (ret != CURLE_OK) {
        fprintf(stderr, "Failed getting http://www.google.com: %s\n",
                curl_easy_strerror(ret));
        exit(EXIT_FAILURE);
    }

    ret = curl_easy_perform(curl);
    if (ret != 0) {
        fprintf(stderr, "Failed getting http://www.google.com: %s\n",
                curl_easy_strerror(ret));
        exit(EXIT_FAILURE);
    }

    return 0;
}

现在,enter code here我得到的错误是:

skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/libcurl.dll when searching for -lcurlskipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/lib\libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../lib/libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../lib/libcurl.dll when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../lib\libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../libcurl.dll when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../..\libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/libcurl.dll when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../lib/libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../lib/libcurl.dll when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../libcurl.a when searching for -lcurl
skipping incompatible C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../libcurl.a when searching for -lcurl
cannot find -lcurl
[Error] ld returned 1 exit status  
recipe for target 'Test.exe' failed   

我完全陷入困境,非常感谢有人称我为白痴并告诉我我做错了什么。

【问题讨论】:

  • 最有可能尝试混合 32 位和 64 位对象。
  • 我明白了,用win64版本的libcurl会有帮助吗?
  • 与你的问题无关,但换成另一个IDE/Compiler,Dev C++已经过时了。如果您想坚持使用 mingw 或 cygwin,您可以使用更好的 IDE 并使用 mingw/cygwin gcc、clang 进行编译。

标签: c++ libcurl dev-c++


【解决方案1】:

“跳过不兼容”通常表示架构不匹配。一个疯狂的猜测是您应该在编译标志中添加 -m32 。 (或者-m64,但是从安装路径来看-m32的可能性更大。)

(与问题无关,但我不禁注意到您的代码正在请求 facebook.com 并打印提及 google.com 的错误。)

【讨论】:

  • m32 和 m64 都没有帮助,我也没有太注意代码,因为它只是一个测试。不过还是谢谢。
  • "m32 和 m64 都没有帮助" 您是否收到与 -m32 和 -m64 完全相同的错误消息?
【解决方案2】:

我已经通过切换到代码块、使用不同的发行版并按照下面列出的教程解决了这个问题。

Using LibCURL C++

【讨论】:

    猜你喜欢
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多