无法在Ubuntu中使用Codeblocks IDE编译libcurl

时间:2017-09-15 06:08:47

标签: c linux curl codeblocks

我正在尝试在Ubuntu上的Codeblocks 16.01中编译此代码,但它返回错误消息未定义引用'curl_easy_init'

但是当我在终端gcc -L/usr/lib/x86_64-linux-gnu main.c -o curl -lcurl中运行时,不会返回任何错误。

我该如何解决这个问题?

#include <stdio.h>
#include <curl/curl.h>

void fileUpload()
{
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL,"http://test1:test1@www.idehn.tec.ac.cr/geoserver/rest/layers.xml");
        /* 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));

        FILE* file = fopen( "layers.txt", "w");

        curl_easy_setopt( curl, CURLOPT_WRITEDATA, file) ;

        /* 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);

        fclose(file);
    }
}


int main() {

    //Call to the method that charge the url content to a file with all the layers.
    fileUpload();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

我认为您已忘记告诉代码块与libcurl链接:

  • 构建选项......
  • 链接器设置
  • 添加(按钮)
  • 输入curl

在图片中查看:https://stackoverflow.com/a/5881751/1212012