Can't compile in Linux with curl - undefined reference

14,980

Answer just to close this ask.

For resumate, you had to place the -lcurl option at the end of your compilation command line.

Share:
14,980
Dhiogo Brustolin
Author by

Dhiogo Brustolin

Updated on June 08, 2022

Comments

  • Dhiogo Brustolin
    Dhiogo Brustolin almost 2 years

    I'm trying to compile a c++ sample in Linux(ubuntu) using curl lib but I'm getting undefined reference to 'curl_easy_init'

    Compile command:

    gcc -L/usr/local/lib -lcurl -I/usr/local/include -o request request.cpp
    

    result:

    /tmp/ccZwDiCf.o: In function 'main':<br>
    request.cpp:(.text+0xa): undefined reference to 'curl_easy_init'<br>
    request.cpp:(.text+0x31): undefined reference to 'curl_easy_setopt'<br>
    request.cpp:(.text+0x3d): undefined reference to 'curl_easy_perform'<br>
    request.cpp:(.text+0x54): undefined reference to 'curl_easy_strerror'<br>
    request.cpp:(.text+0x7b): undefined reference to 'curl_easy_cleanup'<br>
    collect2: ld returned 1 exit status
    

    Code:

    #include <curl/curl.h>
    #include <stdio.h>
    
    int main(int argc, char* argv[]){
        CURL *curl;
        CURLcode res;
    
        curl = curl_easy_init();
        if(curl) {
            curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
            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);
        }
        return 0;
    }