Я пытался заставить программу на С++ использовать libcurl и не могу понять. При разработке на C++ я обычно использую визуальную студию, но в этом проекте используется vi для сеанса ssh с машиной Centos с использованием VI и g++. Я запустил yum install curl, yum install libcurl, yuminstall curl -devel и yum install libcurl -devel и все еще не могу скомпилировать программу.
Документация по API довольно хороша, и я могу найти информацию о том, как использовать libcurl, как только он будет правильно установлен, но его установка оказывается проблемой, но.
Код:
#include<iostream>
#include<string>
#include<curl/curl.h>
using namespace std;
string data; //will hold the urls contents
size_t writeCallback(char* buf, size_t size, size_t nmemb, void* up)
{ //callback must have this declaration
//buf is a pointer to the data that curl has for us
//size*nmemb is the size of the buffer
for (int c = 0; c<size*nmemb; c++)
{
data.push_back(buf[c]);
}
return size*nmemb; //tell curl how many bytes we handled
}
int main(void) {
CURL* curl;
curl_global_init(CURL_GLOBAL_ALL);
curl=curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "https://domain.com");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_USERPWD, "username:password");
curl_easy_perform(curl);
cout << endl << data << endl;
cin.get();
curl_easy_cleanup(curl);
curl_global_cleanup();
return 0;
}
Я получаю следующую ошибку, когда пытаюсь скомпилировать:
/tmp/ccfeybih.o: In function `main':
helloworld.cpp:(.text+0x72): undefined reference to `curl_global_init'
helloworld.cpp:(.text+0x77): undefined reference to `curl_easy_init'
helloworld.cpp:(.text+0x96): undefined reference to `curl_easy_setopt'
helloworld.cpp:(.text+0xb1): undefined reference to `curl_easy_setopt'
helloworld.cpp:(.text+0xcc): undefined reference to `curl_easy_setopt'
helloworld.cpp:(.text+0xe7): undefined reference to `curl_easy_setopt'
helloworld.cpp:(.text+0xf3): undefined reference to `curl_easy_perform'
helloworld.cpp:(.text+0x132): undefined reference to `curl_easy_cleanup'
helloworld.cpp:(.text+0x137): undefined reference to `curl_global_cleanup'
collect2: ld returned 1 exit status
Я не могу найти, куда идти отсюда.