Erstellen von zwei Hauptteilen in einem Eclipse-C ++ - Projekt

8

Wir haben ein Programm, das separat ausgeführt wird und mit einem execvp-Befehl ausgeführt wird. Es braucht also eine Hauptmethode, aber ich glaube, dass dies ein Problem darstellt, wenn man mit einer verwalteten Marke in den Schatten tritt. Müssen wir diesen Code in ein separates Projekt aufteilen oder gibt es eine Möglichkeit, ihn in dasselbe Projekt zu integrieren?

    
Jack BeNimble 18.06.2009, 20:40
quelle

5 Antworten

7

Erstellen Sie ein Projekt für jede ausführbare Datei mit einer main () -Funktion, und erstellen Sie ein zusätzliches Projekt, um die Software als Ganzes darzustellen (ein "Container" -Projekt der Art). Mit Eclipse können Sie Projekte als Abhängigkeiten anderer Projekte angeben. In diesem Fall sollten Sie das Containerprojekt so einrichten, dass die anderen Projekte als "Referenzierte Projekte" aufgelistet werden.

Erstellen Sie dazu das Containerprojekt, klicken Sie dann mit der rechten Maustaste auf das Projekt in der linken Spalte (Projektexplorer) und klicken Sie auf "Eigenschaften". Ein Dialogfeld wird angezeigt. Wählen Sie den Punkt "Projektreferenzen" in der Liste auf der linken Seite und Sie sehen eine Liste aller Projekte, mit denen Eclipse gerade arbeitet. Aktivieren Sie die Kontrollkästchen neben den Projekten für Ihre einzelnen ausführbaren Dateien und klicken Sie dann auf OK. Wenn Sie nun ein Build für das Containerprojekt erstellen, sollte Eclipse automatisch auch für diese abhängigen Projekte einen Build erstellen.

Bei der Verwendung von Unterprojekten auf diese Art habe ich es (persönlich) als nützlich empfunden, einen Arbeitssatz zu erstellen, der das Containerprojekt und alle Unterprojekte enthält (dies kann die Suche im gesamten Softwareprojekt erleichtern) / p>     

bta 23.06.2009 16:12
quelle
3

Behalten Sie es im selben Projekt und verwenden Sie Präprozessordefinitionen, die Sie abhängig davon, welche Art von Hauptverzeichnis Sie in das aktuelle Projekt aufnehmen möchten, unterschiedlich definieren. Hier sind die Hauptleitungen in der gleichen Datei, aber sie können natürlich in verschiedenen Dateien liegen.

%Vor%     
ralphtheninja 19.06.2009 18:59
quelle
1

Wenn das Makefile, das aufgerufen wird, die 2 main () -Methoden nicht in dieselbe ausführbare Datei kompiliert, verursacht dies kein Problem. Ich weiß nicht, wie Eclipse-Projekte gehandhabt werden - wenn es wie VS ist, wobei "Projekt" eine einzelne ausführbare Datei oder Bibliothek bedeutet und "Lösung" eine Gruppe von "Projekten", dann scheint es, als würden Sie mehr als eine benötigen Projekt. Wenn OTOH ein "Projekt" verschiedene "Teilprojekte" enthalten kann, in denen ein "Teilprojekt" eine ausführbare Datei oder eine Bibliothek ist, sollten Sie in der Lage sein, dies einfach zu handhaben.

    
Harper Shelby 18.06.2009 21:17
quelle
1

Ich kenne keine einfache Möglichkeit, zwei Hauptleitungen mit dem Eclipse-Build-System aufzubauen. Die kleinste Änderung, die Sie vornehmen müssen, könnte darin bestehen, zu Makefiles zu wechseln und Makefile-Targets zu erstellen.

Stattdessen würde ich Ihnen raten, mit CMake zu arbeiten. CMake kann verwendet werden, um Makefiles zu generieren, die mit Eclipse verwendet werden. Der Vorteil von CMake besteht darin, dass Sie einfach angeben können, wie Sie die Bibliotheken erstellen und die Bibliotheken zu den ausführbaren Dateien verknüpfen. CMake kann Builds für Eclipse, Visual Studio, Code-Blöcke oder Makefiles generieren (so können Sie die Eingabeaufforderung verwenden).

    
amit_grepclub 21.06.2009 14:25
quelle
0

Dies ist in der Sprache C ++ erstellt. Sie müssten es ändern, um Ihr Ergebnis zu erhalten. Es gibt etwas zu tun 2 Dinge auf einmal wenn Sie das wollen.

    
user3750687 20.06.2014 21:55
quelle

Tags und Links