GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verknüpfe ich libcurl mit meinem C++-Programm unter Linux?

Sie können versuchen, curl-config --libs zu verwenden .


Ihre Header-Dateieinschlüsse sind in Ordnung; Ihr Problem tritt beim Verknüpfungsschritt auf. Um mit libcurl zu verlinken, müssen Sie den -lcurl hinzufügen Befehlszeilenoption, vorausgesetzt, es ist in einem Standardverzeichnis installiert:

g++ -o sms ./src/sms.o -lcurl

Wenn es nicht in einem Standardverzeichnis installiert ist, müssen Sie auch den -L/path/to/libcurl hinzufügen , z.B. etwas wie:

# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl

Beachten Sie auch, dass die -lcurl Option muss nach erscheinen die Liste der Objektdateien, die Sie verknüpfen, sonst wird es nicht richtig verknüpft.


Jeder, der ecplise CDT verwendet, muss Folgendes tun. Geben Sie zuerst am Terminal

ein
curl-config --libs

Auf meinem Rechner lautet das Ergebnis

-L/usr/lib/i386-linux-gnu -lcurl

Dann machen Sie es nach diesem Screenshot und Sie können kompilieren. Übrigens vergessen Sie nicht, Header-Dateien in Ihren Code einzufügen

Sie geben also den Bibliotheksordnerpfad ohne -L und den Bibliotheksnamen ohne -l ein, da sie automatisch vom Linker hinzugefügt werden.


Eine alternative Antwort (die erste ist ausgezeichnet). Erwägen Sie, die von "pkg-config --libs libcurl" zurückgegebene Ausgabe als Argument für Ihren Compiler zu verwenden.

Zum Beispiel

CPPFLAGS=`pkg-config --libs libcurl`

g++ $CPPFLAGS meinedatei.o

Pkg-config ist eine Standardmethode für Open-Source-Bibliotheken, um Ihnen mitzuteilen, wie Sie mit ihnen verknüpfen / ihre Dateien #einschließen können.


Linux
  1. So erstellen Sie harte und symbolische Links in Linux

  2. Wie kann man einen laufenden Prozess unter Linux neu starten (oder zurücksetzen)?

  3. Wie finde ich den vollständigen Pfad des C++-Linux-Programms von innen heraus?

  4. Wie bekomme ich die Thread-ID eines Pthreads im Linux-C-Programm?

  5. AVR - So programmieren Sie einen AVR-Chip unter Linux

So kompilieren Sie C, C++ und Java mit Terminal unter Linux

So kompilieren und führen Sie C- und C++-Programme unter Linux aus

Funktionsweise des Ping-Programms unter Linux

Geniale Möglichkeiten zum Ausführen eines Programms unter Linux

Wie man ein C-Programm unter Linux schreibt und ausführt

Wie kann ich C++-Code profilieren, der unter Linux ausgeführt wird?