curl.h keine solche Datei oder Verzeichnis

77

Ich habe curl diesen Befehl installiert (ich benutze Ubuntu):

sudo apt-get install curl

Wenn ich ein einfaches Programm mit teste g++ test.cpp

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

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");

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

g++ zeigt mir:

fatal error: curl/curl.h: No such file or directory
compilation terminated.

Kann mir jemand helfen?

user1518451
quelle

Antworten:

143

sudo apt-get install curl-devel

sudo apt-get install libcurl-dev

(installiert die Standardalternative)

ODER

sudo apt-get install libcurl4-openssl-dev

(die OpenSSL-Variante)

ODER

sudo apt-get install libcurl4-gnutls-dev

(die gnutls Variante)

n. 'Pronomen' m.
quelle
3
Hat Ubuntu ein curl-develPaket? Das Virtuelle libcurl-devwird von mehreren anderen bereitgestellt, zB libcurl4-openssl-devdie für mich gearbeitet haben.
DSM
Sorry, habe meine Distributionen durcheinander gebracht ... es sollte libcurl-dev sein, die Antwort bearbeitet
n. 'Pronomen' m.
2
Danke, ich benutze sudo apt-get install libcurl4-openssl-dev undg++ test.cpp -L/usr/include/curl/lib -lcurl
user1518451
Sie brauchen nicht -L/usr/include/curl/lib, es gibt wahrscheinlich keinen solchen Weg.
n. 'Pronomen' m.
2
yum install libcurl-develsollte mit einem anderen Paketmanager gleich sein
Nachtgold
35

An diejenigen, die Centos verwenden und auf diesen Beitrag gestoßen sind:

 $ yum install curl-devel

und beim Kompilieren Ihres Programms example.cppverlinken Sie auf die Curl-Bibliothek:

 $ g++ example.cpp -lcurl -o example

" -o example" erstellt die ausführbare Datei exampleanstelle der Standardeinstellung a.out.

Die nächste Zeile lautet example:

 $ ./example
Maus Ratte
quelle
3

Ja, bitte laden Sie Curl-Devel wie oben beschrieben herunter. Vergessen Sie auch nicht, auf lib curl zu verlinken:

-L/path/of/curl/lib/libcurl.a (g++)

Prost

Moataz Elmasry
quelle
3

Wenn curl-dev luarocks nach der Installation die Header nicht sieht:

find /usr -name 'curl.h'
Example: /usr/include/x86_64-linux-gnu/curl/curl.h

luarocks install lua-cURL CURL_INCDIR=/usr/include/x86_64-linux-gnu/
bujnos
quelle