Wie kann ich eine benötigte C-Bibliothek mit GCC einbinden?

Lesezeit: 3 Minuten

Benutzeravatar von multiholle
mehrholle

Ich versuche, das einfache C-Beispiel aus zu kompilieren dieses Tutorial an Ubuntu mit GCC. Was muss ich als Argumente für GCC verwenden, um die erforderlichen Bibliotheken einzuschließen? #include <libappindicator/app-indicator.h>?

  • Verwandt: Was bedeutet -lm in GCC?, Warum müssen Sie die Mathematikbibliothek in C verknüpfen?und GCC -lm -lz -lrt Optionen – worum geht es?

    – Peter Mortensen

    2. November um 23:08 Uhr


Benutzeravatar von Kristofer
Kristofer

-I<search path to include files>
-L<search path to the lib file>
-l<libname>

  • in der Tat @debuti … außerdem scheint man das Leerzeichen zwischen den weglassen zu können I oder L und die searchpathund füge alles zusammen wie: -I<searchpath to include files>

    – DarkCygnus

    4. Juli 2018 um 21:07 Uhr


  • Das beantwortet die Frage nicht, sondern bringt nur die (unvollständige) Dokumentation wieder zum Vorschein. Eine richtige Antwort wäre zumindest möglich Regeln der Namensgebung verwendet, um das eigentliche Argument abzuleiten. Was soll das eigentliche Argument sein? -llibappindicator? -lappindicator? Etwas anderes?

    – Peter Mortensen

    2. November um 22:31 Uhr


Benutzeravatar von Vijay Mathew
Vijay Mathew

Verwenden Sie die -l Befehlszeilenoption. Sie können den Suchpfad der Bibliothek mit angeben -L Möglichkeit. Z.B:

gcc -o myprogram -lfoo -L/home/me/foo/lib myprogram.c

Dies wird verknüpft myprogram mit der statischen Bibliothek libfoo.a im Ordner /home/me/foo/lib.

  • Das beantwortet die Frage nicht, sondern bringt nur die (unvollständige) Dokumentation wieder zum Vorschein. Eine richtige Antwort wäre zumindest möglich Regeln der Namensgebung verwendet, um das eigentliche Argument abzuleiten. Was soll das eigentliche Argument sein? -llibappindicator? -lappindicator? Etwas anderes?

    – Peter Mortensen

    2. November um 22:34 Uhr


Benutzeravatar von QuantumMechanic
Quantenmechanik

Wenn Sie verwendet haben apt-get, Synaptic Package Manageretc. um die zu bekommen appindicator Bibliothek (im Gegensatz zum Erstellen aus dem Quellcode), haben Sie nur die libappindicator1 Paket oder hast du Auch Installieren libappindicator-dev um das zu bekommen libappindicator Header-Dateien? Linux-Pakete haben sehr oft die Laufzeitbibliotheken von den Kompilierzeit-Headern getrennt. Auf diese Weise müssen Personen, die die Bibliotheken nur benötigen, um einen dynamischen Link zu erfüllen, keine unnötigen Header installieren. Da Sie jedoch Entwicklung betreiben, benötigen Sie diese Header und daher die libappindicator-dev Paket auch.

  • Ich habe das Paket libappindictaor-dev hinzugefügt. Was muss ich mit gcc als -l Argument verwenden?

    – Mehrloch

    16. Mai 2011 um 11:52 Uhr

  • Entsprechend packages.ubuntu.com/hu/natty/i386/libappindicator-dev/filelist Sie müssen verwenden -I/usr/include/libappindicator-0.1/libappindicator

    – Quantenmechanik

    16. Mai 2011 um 12:39 Uhr

Benutzeravatar von Hytromo
Hytromo

Was ich mache ist:

pkg-config --list-all | grep indicator

Benutzeravatar von lijo
Lijo

Verwenden:

gcc example.c -o example  `pkg-config --cflags --libs appindicator-0.1`

pkg-config holt die erforderlichen Include- und Bibliotheks-Flags für libappindicator und seine Abhängigkeiten. Dies setzt voraus libappindictaor-dev Paket ist bereits installiert.

  • Was soll bei diesem Befehlszeilenaufruf passieren? Wie funktionieren diese Backticklies? Gibt es einen Austausch mit Standardeingabe und Standardausgabe? Oder nicht? Warum ist das im Allgemeinen notwendig? Bitte antworten Sie, indem Sie Ihre Antwort bearbeiten (ändern), nicht hier in den Kommentaren (**** ohne **** “Bearbeiten:”, “Aktualisieren:” oder ähnliches – die Antwort sollte so aussehen, als wäre sie heute geschrieben).

    – Peter Mortensen

    2. November um 23:03 Uhr


Benutzeravatar von Peter Mortensen
Peter Mortensen

Sie versuchen, eine zu machen GTK app, und die vorherigen Lösungen sind so überall anwendbar wie die Verwendung der -l Möglichkeit und -ICH Möglichkeit,

Für GTK-Anwendungen können Sie jedoch auch verwenden pkg-config was es einfacher macht, da Ihre Pfade vordefiniert werden können.

Ein interessantes Beispiel findet sich in
http://developer.gnome.org/gtk/2.24/gtk-compiling.html

  • Was soll bei diesem Befehlszeilenaufruf passieren? Wie funktionieren diese Backticklies? Gibt es einen Austausch mit Standardeingabe und Standardausgabe? Oder nicht? Warum ist das im Allgemeinen notwendig? Bitte antworten Sie, indem Sie Ihre Antwort bearbeiten (ändern), nicht hier in den Kommentaren (**** ohne **** “Bearbeiten:”, “Aktualisieren:” oder ähnliches – die Antwort sollte so aussehen, als wäre sie heute geschrieben).

    – Peter Mortensen

    2. November um 23:03 Uhr


1433470cookie-checkWie kann ich eine benötigte C-Bibliothek mit GCC einbinden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy