Ist es möglich, allen C/C++ - Projekten Include-Pfade und Bibliotheken hinzuzufügen? Mit anderen Worten: Wie kann ich sie global machen oder eine C/C++ Projekt Build Einstellung auf eine andere kopieren?Mit Eclipse: Wie fügt man Include-Pfade und Bibliotheken für alle C/C++ - Projekte ein?
Antwort
Für Eclipse Indigo: Es gibt keine Möglichkeit, globale Include-Pfade und Bibliotheken zu definieren. Sie können sie jedoch von einem Projekt in ein anderes exportieren und importieren.
Zum Projekt> Eigenschaften> C/C++ Allgemein> Pfade und Symbole Klicken Sie dann Einstellungen exportieren ... die Include-Pfade zu speichern und/oder Symboldefinitionen in eine Datei. In Ihrem anderen Projekt können Sie dann importieren Einstellungen ...
Ich benutze oft die CPATH-Umgebungsvariable, um verschiedene Verzeichnisse über alle meine Projekte aufzunehmen. Sie finden es unter: c/C++ -> build-> environment. Achten Sie darauf, jeden Pfad mit einem ':' - Zeichen zu trennen (nicht mit einem ';' - Semikolon).
Sie können PATH auch verwenden, um statische Bibliotheken einzubinden. Für mich funktioniert es jedoch nur in Linux zuverlässig. In OSX ruiniert es.
Die Alternative wäre, diese Bibliotheken und Header zu den Standardsuchpfaden Ihrer Umgebung hinzuzufügen. Platz likes/usr/local/lib. Lesen Sie weiter, wo Ihr Linker standardmäßig sucht.
Einstellung CPATH in eclipse ist nett, um Sachen für alle Projekte zu reparieren (wenn es wiederholbare Einstellungen ist). Ich kann einen anderen CPATH draußen haben der Sonnenfinsternis. – fchen
Ja, Sie können, in 2 Schritten, benutzerfreundlicher als der von parvus erwähnte. Beide sind in „Projekteigenschaften“ getan -> „C/C++ Allgemein“ -> „Wege und Symbole“:
- In einem bestehenden Projekt, in dem Sie bereits konfiguriert haben, die Pfade enthalten: Markieren Sie die Include-Pfade (in die Registerkarte "Includes"), die Sie in das neue Projekt kopieren möchten und wählen Sie "Exportieren". Beachten Sie, dass dies eine Markierung zu jeder Zeile hinzufügt.
- Im neu erstellten Projekt: Aktivieren Sie auf der Registerkarte "Referenzen" das Kontrollkästchen des gerade erwähnten Projekts, und wenn Sie zur Registerkarte "Includes" zurückkehren, sehen Sie, dass dort alle exportierten Pfade angezeigt werden.
Die Referenzierung der Bibliotheken funktioniert auf die gleiche Weise.
haben auch einen Blick auf:
- die Eclipse Juno Documentation zu diesem Thema,
- a related StackOverflow question
Ich bin nicht in der Lage gewesen, die Einbeziehung von Bibliotheken so zu machen, wie Sie es beschrieben haben, wenn Sie in Eclipse IDE für C/C++ - Entwickler arbeiten. Version: Mars Release (4.5.0). Build-ID: 20150621-1200. – Eduardo
ich in sie suchen schon vor langer Zeit. Einige Posts erwähnten eine Methode: Projekt> Eigenschaften> C/C++ Allgemein> Pfade und Symbole Dann klicken Sie auf Export Einstellungen .. Aber es funktioniert nur für die Aufnahme von Header-Dateien.
Um Bibliotheken und Bibliothekspfade zu spezifizieren, finde ich, soweit ich weiß, keine einfache Lösung. Zum Beispiel verwende ich jetzt ffmpeg Bibliotheken. Wenn Sie "Makefile", können die darunter und Bibliotheksdateien unten 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)
Es gibt viele Dateien hier. Wenn ich sie einzeln in ein Eclipse C++ - Projekt einfüge, ist das entmutigend. Ich weiß nicht, warum es keine Möglichkeit in Eclipse gibt, dass wir Bibliotheksdateien mit einer langen Zeile einfügen können. als ein Separator, wie zum Beispiel:
-lavdevice -lavfilter -lswresample -lswscale -lavformat -lavcodec -ldl -lasound -lSDL lz -lrt -lavutil -lm
Gibt es eine solche Art und Weise oder muss ich die Bibliotheksdateien einzeln eingeben oder Makefile verwenden?
BTW, ich habe einmal pkg-config plug-in für Eclipse ausprobiert, was nicht für eine Bibliothek funktioniert hat, die ich ausprobiert habe. Lass es mich nochmal versuchen, da ich vermute, dass der vorherige Fehler auf einen Bug zurückzuführen sein könnte. Aber ich denke, es wäre schöner, eine Option zu haben, um die Bibliotheksdateien mit einer Zeile zu versehen. – user1914692
Ich denke, ich finde einen Weg. Gehe zu Eigenschaften -> C/C++ Build -> Einstellungen -> GCC C++ Linker -> Verschiedenes -> Linker Flags, du könntest "-lavdevice" etc. eingeben, um die Bibliotheken anzugeben. – user1914692
Ich kopiere nur ein Projekt aus der Verwendung von Eclipse in Project Explorer gebaut. Benennen Sie anschließend Quelldateien einfach um.
Für Bibliotheken ich folgendes im Source-Projekt haben:
Projekt -> Eigenschaften -> C/C++ Erstellen -> C++ Linker -> Bibliotheken
Danach I Bibliotheken wählen (shift + Maus) & Kopie (ctrl + c)
im leeren Projekt:
Projekt -> Eigenschaften -> c/C++ Erstellen -> C++ Linker -> Bibliotheken
Strg + V (Einfügen)
Adaequat mit Eclipse juno
Wie wäre es mit Eclipse-IDE für C/C++ - Entwickler? Version: Mars Release (4.5.0). Build-ID: 20150621-1200? – Eduardo
ich das gleiche Problem konfrontiert und löste es wie folgt aus: ich sah, dass in den automatisch generierten Make-Datei gibt es Linien:
-include ../makefile.init
...
-include ../makefile.defs
...
-include ../makefile.targets
nach dem Lesen How can I parameterize an Eclipse generated make file Ich erkannte, dass Sie Variablen außerhalb Ihres Projekts definieren können. Das bedeutet, dass es sich um eine Variable für mehrere Projekte handeln kann. So habe ich makefile.defs Datei außerhalb des Projekts und erklären darin einige Variablen:
MY_INCLUDE = <path to include>...
MY_LIBS_PATH = <path to libs>...
MY_LIBS = -lmylib ... (the libs)
als in allen meinen Projekten "Eigenschaften-> c/C++ Build-> Variablen bauen" I definiert neue Variable:
my_include = $(MY_INCLUDE)
my_libs_path = $(MYLIBS_PATH)
my_libs = $(MY_LIBS)
Und dann können Sie diese Variablen in den Projekten. Gehe zu Eigenschaften-> c/C++ build-> Settings und wähle compiler includes und füge $ (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 Libraries (-l) meine definierte env-Variable nicht verwenden, also umgehe ich sie, indem ich den Linker wähle und dann zu Miscellaneous gehe und zu den Linker-Flags $ (my_libs) hinzufüge. Schließlich müssen Sie die Reihenfolge in der Befehlszeile ändern (wenn der Linker ausgeführt wird), weil 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 "command line pattern" für Experteneinstellungen verschieben Sie die $ {FLAGS} in den hinteren Teil der Befehlszeile (wodurch die Zeichenfolge $ (my_libs) in den Hintergrund der Befehlszeile verschoben wird). DAS ALLES. es ist eine Menge, aber Sie müssen es tun, nur einmal ... hoffen, dass es jemand ...
Halb automagically hilft, kann es mit diesem Perl-Skript getan werden:
#!/usr/bin/perl
# pipe the (gcc) compile command into this script
# It emits listOptionValue lines to paste into .cproject
#
# To easily find the paste location, set the include path as usual to a string
# that is easily recognizable in the .cproject, e.g. to "MARKER_INCLUDE_PATH".
#
# Make sure eclipse is not running while you do these sorts of hacks and backup
# your .cproject before.
# -----------------------------------------------------------------------------------------
# sample line: <listOptionValue builtIn="false" value="/usr/include/gdk-pixbuf-2.0"/>
while (<>) {
@include_options = m#-I *(.*?) #g;
print join ("\n", @include_options) . "\n";
print join ('"/>' ."\n" . ' <listOptionValue builtIn="false" value="', @include_options);
print '"/>' . "\n";
}
- 1. Wie versteht man Open-Source-Projekte/Bibliotheken?
- 2. Eclipse: Ein ganzes Repository für alle Projekte hinzufügen
- 3. JAR-Dateiordner für Eclipse-Projekte
- 4. Wie fügt man einen Ordner mit mehreren Bibliotheken und einen Ordner mit mehreren Kopfzeilen in Ihr Projekt mit Qt ein?
- 5. Mehrere Projekte mit Eclipse
- 6. Android Studio, Eclipse und alle mit ihnen installierten Bibliotheken/Bibliotheken vollständig entfernen
- 7. Verwaltung und Versionsverwaltung gemeinsamer Bibliotheken über Projekte
- 8. Unterstützt Typoskript bestehende Projekte mit JavaScript-Bibliotheken?
- 9. "Bare" Eclipse-Installation für generische Projekte
- 10. Wie fügt man Namespace und Präfix für alle Elemente und Attribute mit XSLT hinzu?
- 11. Wie ändert man Verzeichnisse, Bibliotheken und Bibliotheken mit CLion?
- 12. Gradle: separate Eclipse-Projekte für Komponententests generieren
- 13. Wie fügt man mit PHP und AJAX in SQL ein?
- 14. Wie können Python-Bibliotheken verschiedener Projekte im selben Paket sein?
- 15. Eclipse-doesnt'start mehr richtig, kann nicht importieren Bibliotheken und führen Projekte
- 16. Bibliotheken, Projekte, Module und Pakete in Intellij Idee
- 17. Eclipse XML-Editor fügt Tabs für Leerzeichen
- 18. Wie verwende ich Android-Bibliotheken (apklibs) mit Maven und Eclipse?
- 19. Eclipse Java Projekte in Git
- 20. Die Abhängigen von externen Bibliotheken alle weg, wie man zurück fügt?
- 21. Wie generiert man TAGs für Haskell-Projekte?
- 22. Entfernen Sie nicht verwendeten Import von Alle Projekte in Eclipse
- 23. Wie fügt man mit OpenLayers Attribute in ein WFS ein?
- 24. Wie verteile ich Java-Projekte in Eclipse?
- 25. Wie fügt man JBoss Server in Eclipse hinzu?
- 26. Die Eclipse-CDT-Projekte verstehen
- 27. Wie man ein cc in einem PHP-Kontaktformular hinzufügt?
- 28. Wie exportiert man ein Eclipse-Projekt mit externen Jar-Abhängigkeiten?
- 29. Wie fügt man mehrere GroupDescription ein?
- 30. Wie erstellt man ein zweidimensionales Array und fügt Werte hinzu?
Funktioniert nicht :(Die Importfunktion scheint kaputt zu sein –
Funktioniert perfekt (Eclipse Juno): Sie müssen nur die Einstellungen aus dem Projekt, das die meisten relevanten Includes enthält, in die XML-Datei (nennen wir es default_includes.xml) exportieren und irgendwo auf Ihrer Festplatte speichern fahren Sie, um Ihren anderen Projekten zu erlauben, es zu importieren, das ist es. –
was ist mit Bibliotheken? –