Reputation: 69
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;
}
Upvotes: 6
Views: 18022
Reputation: 1246
When compilation is done with cmake, add these lines to your cmakelists.txt file
find_package(CURL REQUIRED)
target_include_directories(... ${CURL_INCLUDE_DIRS})
target_link_libraries(... ${CURL_LIBRARIES})
Upvotes: 0
Reputation: 103
Answer just to close this ask.
For resumate, you had to place the -lcurl option at the end of your compilation command line.
Upvotes: 4