title: How to properly install libcurl and link it to a c++ program?
body: <p>I have been trying to get a c++ program to use libcurl and can't figure it out. When developing in C++ I usually use visual studio but this project is using vi an ssh session to a centos machine using VI and g++. I have ran yum install curl, yum install libcurl, yuminstall curl-devel and yum install libcurl-devel and still cannot get the program to compile.</p>
  
  <p>The documentation on the API is pretty good and I can find information how to use libcurl once it is properly installed but getting it installed is proving to be a pain in the but.</p>
  
  <p>The code is:</p>
  
  <pre><code>#include&lt;iostream&gt;
  #include&lt;string&gt;
  #include&lt;curl/curl.h&gt;
  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&lt;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, &amp;writeCallback);
      curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
      curl_easy_setopt(curl, CURLOPT_USERPWD, "username:password");
  
      curl_easy_perform(curl);
  
      cout &lt;&lt; endl &lt;&lt; data &lt;&lt; endl;
      cin.get();
  
      curl_easy_cleanup(curl);
      curl_global_cleanup();
  
  
      return 0;
  }
  </code></pre>
  
  <p>I get the following error when I try to compile:</p>
  
  <pre><code>/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
  </code></pre>
  
  <p>I can't find where to go from here.</p>