Mit Eclipse: So fügen Sie Include-Pfade und Bibliotheken für alle Ihre C/C++-Projekte hinzu

Lesezeit: 5 Minuten

Benutzer-Avatar
Walidix

Ist es möglich, Include-Pfade und Bibliotheken zu allen C/C++-Projekten hinzuzufügen? Mit anderen Worten: Wie kann ich sie global machen oder eine C/C++-Projekt-Build-Einstellung in eine andere kopieren?

Für Eclipse Indigo: Es gibt keine Möglichkeit, Include-Pfade und Bibliotheken global zu definieren. Sie können sie jedoch von einem Projekt in ein anderes exportieren und importieren.

Gehe zu Projekt > Eigenschaften > C/C++ Allgemein > Pfade und Symbole
Dann klick Exporteinstellungen… um die Include-Pfade und/oder Symboldefinitionen in einer Datei zu speichern. In deinem anderen Projekt kannst du das dann verwenden Importeinstellungen…

  • Funktioniert perfekt (Eclipse Juno): Sie müssen nur die Einstellungen aus dem Projekt, das den relevantesten Satz von Includes enthält, in eine XML-Datei (nennen wir sie default_includes.xml) exportieren und irgendwo auf Ihrer Festplatte speichern, damit Ihre anderen Projekte importiert werden können es, das ist es.

    – Alex Bonel

    21. Februar 2013 um 7:10 Uhr


  • Was ist mit Bibliotheken?

    – Schwaroop

    16. Januar 2015 um 16:02 Uhr

Benutzer-Avatar
Dominik

Ja, Sie können in 2 Schritten benutzerfreundlicher werden als die von parvus erwähnte. Beides geschieht in “Projekteigenschaften” -> “C/C++ Allgemein” -> “Pfade und Symbole”:

  1. In einem bestehenden Projekt, in dem Sie die Include-Pfade bereits konfiguriert haben: Markieren Sie die Include-Pfade (in der Registerkarte „Includes“), die Sie in das neue Projekt kopieren möchten, und wählen Sie „Exportieren“. Beachten Sie, dass dies eine hinzufügt [Exp] Tag zu jeder Zeile.
  2. Im neu erstellten Projekt: Aktivieren Sie im Reiter „Referenzen“ die Checkbox des eben erwähnten Projekts und wenn Sie wieder auf den Reiter „Enthält“ wechseln, sehen Sie, dass dort alle Pfade erscheinen, die Sie gerade exportiert haben.

Das Referenzieren der Bibliotheken funktioniert auf die gleiche Weise.

Schauen Sie sich auch an:

  • Ich war nicht in der Lage, die Einbindung von Bibliotheken so zu gestalten, wie Sie es beschrieben haben, wenn ich in Eclipse IDE für C/C++-Entwickler arbeite. Version: Mars-Release (4.5.0). Build-ID: 20150621-1200.

    – Eduardo

    30. März 2016 um 8:01 Uhr

Benutzer-Avatar
DiscoStu

Ich verwende häufig die Umgebungsvariable CPATH, um verschiedene Verzeichnisse in alle meine Projekte aufzunehmen. Es ist zu finden unter: c/c++->build->environment. Achten Sie darauf, jeden Pfad mit einem „:“-Zeichen zu trennen (nicht mit einem „;“-Semikolon).

Sie können auch PATH verwenden, um statische Bibliotheken einzubinden. Bei mir hat es jedoch nur unter Linux zuverlässig funktioniert. In OSX macht es ruiniert.

Die Alternative wäre, diese Bibliotheken und Header zu den Standardsuchpfaden Ihrer Umgebung hinzuzufügen; Platz mag /usr/local/lib. Informieren Sie sich darüber, wo Ihr Linker standardmäßig sucht.

  • Das Festlegen von CPATH in Eclipse ist praktisch, um Probleme für alle Projekte zu beheben (wenn es sich um wiederholbare Einstellungen handelt). Ich kann einen anderen CPATH außerhalb von Eclipse haben.

    – fchen

    24. Juni 2014 um 1:25 Uhr

Benutzer-Avatar
Krone

Für Bibliotheken gehe ich im Quellprojekt wie folgt vor:

Projekt -> Eigenschaften -> c/c++Build -> c++ Linker -> Bibliotheken

Danach wähle ich Bibliotheken aus (Umschalt + Maus) und kopiere (Strg + C)

Im leeren Projekt:

Projekt -> Eigenschaften -> c/c++Build -> c++ Linker -> Bibliotheken

Strg + V (Einfügen)

Funktioniert gut mit Eclipse Juno

Ich kopiere einfach ein Projekt aus der Verwendung von Eclipse, das im Projekt-Explorer integriert ist. Benennen Sie danach einfach die Quelldateien um.

Benutzer-Avatar
Benutzer1914692

Ich recherchiere schon lange danach. In einigen Beiträgen wurde eine Methode erwähnt: Projekt > Eigenschaften > C/C++ Allgemein > Pfade und Symbole. Klicken Sie dann auf Exporteinstellungen.. Aber es funktioniert nur für das Einschließen von Header-Dateien.

Um Bibliotheken und Bibliothekspfade anzugeben, finde ich meines Wissens keine einfache Lösung. Zum Beispiel verwende ich jetzt ffmpeg-Bibliotheken. Wenn Sie “Makefile” verwenden, können die Einbindungs- und Bibliotheksdateien wie folgt ausgedrückt werden:

FFMPEG_LIBS= libavdevice
libavformat
libavfilter
libavcodec
libswresample
libswscale
libavutil
CFLAGS := $(shell pkg-config –cflags $(FFMPEG_LIBS)) $(CFLAGS) LDLIBS := $(shell pkg-config –libs $(FFMPEG_LIBS)) $(LDLIBS)

Hier gibt es viele Dateien. Wenn ich sie einzeln in ein Eclipse-C++-Projekt einfüge, ist das entmutigend. Ich weiß nicht, warum es in Eclipse keine Option gibt, dass wir Bibliotheksdateien einschließen könnten, indem wir eine lange Zeile mit verwenden; als Trennzeichen, wie z.

-lavdevice -lavfilter -lswresample -lswscale -lavformat -lavcodec -ldl -lasound -lSDL -lz -lrt -lavutil -lm

Gibt es eine solche Möglichkeit, oder muss ich die Bibliotheksdateien einzeln eingeben oder Makefile verwenden?

Benutzer-Avatar
Gemeinschaft

Ich hatte das gleiche Problem und habe es so gelöst: Ich habe gesehen, dass es im automatisch generierten Makefile Zeilen gibt:

-include ../makefile.init
 ...
-include ../makefile.defs
 ...
-include ../makefile.targets

Nach dem Lesen von Wie kann ich eine von Eclipse generierte Make-Datei parametrisieren, wurde mir klar, dass Sie Variablen außerhalb Ihres Projekts definieren können. Das heißt, es kann eine gemeinsam genutzte Variable für mehrere Projekte sein. Also habe ich die Datei makefile.defs außerhalb des Projekts hinzugefügt und darin einige Variablen deklariert:

MY_INCLUDE = <path to include>...
MY_LIBS_PATH = <path to libs>...
MY_LIBS = -lmylib ... (the libs)

als in allen meinen Projekten “properties->c/c++ build->build variables” habe ich eine neue Variable definiert:

my_include = $(MY_INCLUDE)
my_libs_path = $(MYLIBS_PATH)
my_libs = $(MY_LIBS)

Und dann können Sie diese Variablen in den Projekten verwenden. Gehen Sie zu Eigenschaften->c/c++ build->Settings und wählen Sie Compiler Includes und fügen Sie $(my_include) hinzu. Gehen Sie zum Linker und wählen Sie Bibliotheken und fügen Sie den Suchpfad $(my_libs_path) hinzu. Aus irgendeinem Grund können die Bibliotheken (-l) meine definierte env-Variable nicht verwenden, also umgehe ich sie, indem ich Linker wähle und dann zu Verschiedenes gehe und Linker-Flags $ (my_libs) hinzufüge. Schließlich müssen Sie die Reihenfolge in der Befehlszeile ändern (wenn der Linker ausgeführt wird), da die Liste der Bibliotheken nach den .o-Dateien kommen muss. Um das zu tun, gehen Sie zu Linker und Tab und dort können Sie die letzte Befehlszeile sehen, die ausgeführt wird. In “Befehlszeilenmuster für Experteneinstellungen” verschieben Sie die $ {FLAGS} an das Ende der Befehlszeile (das verschiebt die Zeichenfolge $ (my_libs) an das Ende der Befehlszeile). DAS ALLES. Es ist viel, aber Sie müssen es nur einmal tun … hoffe, dass es jemandem hilft …

1304440cookie-checkMit Eclipse: So fügen Sie Include-Pfade und Bibliotheken für alle Ihre C/C++-Projekte hinzu

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

Privacy policy