2008-12-05 8 views
32

Was ist die beste Lösung, um mehrere CDT C++ - Projekte über die Befehlszeile zu erstellen? Die Projekte haben Referenzen und so ist es nicht möglich, einzelne Projekte zu erstellen.Erstellen Sie mehrere CDT C++ - Projekte aus der Befehlszeile

+4

Dies ist eine der großen Schwächen von Eclipse im Allgemeinen, denke ich.Headless-Builds sind kein erstklassiger Bürger in der Eclipse-Welt. – JesperE

+1

Haben Sie überlegt, [Make] (http://en.wikipedia.org/wiki/CMake) zu verwenden? – Lawand

+1

Verwenden Sie die .mk-Dateien, die von CDT beim Erstellen generiert werden. Daher ist es nicht möglich, das Projekt von Grund auf neu zu erstellen. – mmmmmmmm

Antwort

1

Wenn Sie ein Make-Projekt unter CDT erstellt haben, können Sie einfach Ihre Lieblings-Shell verwenden und make in allen Projekten ausführen.

+2

Wir benutzen Eclipse, also müssen wir nicht mit Makefiles herumalbern ... – mmmmmmmm

+0

Dies ist die Antwort auf Ihre Frage. Sie müssen "mit Makefiles rumspielen". Eclipse ist kein Build-System. –

+0

Weitere Informationen finden Sie unter http://www.codinghorror.com/blog/archives/000988.html. –

0

Wir machen das in unserem bestehenden Build.

Setzen Sie ein Makefile in alle Ihre externen Referenzen und Ihr Toplevel-Projekt. In Ihrem "alle" Regel haben sie laufen: machen -C ./externalref1 machen -C ./externalref2 etc

wir die externen Abhängigkeiten in einer Variablen tatsächlich definieren: EXT_DEP = externalref1 externalref2 dann verwenden Der Subst (Substitute) -Befehl, um alle Sub-Maks mit dem richtigen Aufruf zu starten.

55

Diese Funktion wurde in CDT 6 hinzugefügt (Endgültiger Build fällig bis 15. Juni 2009). Sie können den endgültigen Veröffentlichungskandidaten von der Build-Seite herunterladen: download.eclipse.org/tools/cdt/builds/6.0.0/.

Release von Eclipse 3.5 + CDT 6, Am importieren Sie können, bauen und clean-Build-Projekte und den Arbeitsbereich in der Befehlszeile an Eclipse die folgenden Optionen gesendet werden:

eclipse -nosplash 
     -application org.eclipse.cdt.managedbuilder.core.headlessbuild 
     -import {[uri:/]/path/to/project} 
     -build {project_name | all} 
     -cleanBuild {projec_name | all} 

unter Windows verwenden eclipsec.exe anstelle von eclipse.exe Build-Ausgabe in stdout/stderr geschrieben haben und damit der Aufruf bis zum Abschluss blockiert.

Der Schalter "-Anwendung" weist Eclipse an, den CDT-Headless-Builder auszuführen, anstatt die Workbench zu starten. Die anderen Schalter können einzeln oder zusammen verwendet werden. Das bedeutet, dass Sie ein Projekt mit einem eigenen Shell-Skript, '-import' in einen Arbeitsbereich und '-build' mit dem Headless-Builder des Managedbuilders auschecken können.

Verwenden Sie die ‚-Daten‘ Schalter, um den Arbeitsbereich zu spezifizieren, zu verwenden, die ein leeres temporäres Verzeichnis sein kann, finden Sie in der Runtime-Dokumentation für andere Schalter von der Plattform Laufzeit unterstützt: help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html

Siehe bug 186847 comment 24 und weiter für mehr Details über die zugesagte Funktionalität.

+0

Zusätzlich können Sie eine einzelne Konfiguration angeben mit: '-build {Projektname [/ Konfig_Name] | all} 'Beispiel:' -build project_name/Release' –

1

Vor CDT 6 könnten Sie die JDT AptBuilder verwenden (zum Beispiel im klassischen Eclipse enthalten).

Damit können Sie einen bereits konfigurierten Arbeitsbereich erstellen. Also du: prüfe deine Quelle, konfiguriere einen Arbeitsbereich, der auf die ausgecheckten Projekte verweist. Ihre automatisierten Build-Skripte können dann die Checkouts aktualisieren und den AptBuilder ausführen, ohne dass die GUI gestartet werden muss.

Verwandte Themen