Wir haben ein Programm, das separat ausgeführt wird, mit einem Execvp-Befehl ausgeführt. 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?So erstellen Sie zwei Hauptnetzwerke in einem Eclipse-C++ - Projekt
Antwort
Wenn das aufgerufene Makefile 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 Bibliothek ist, sollten Sie in der Lage sein, dies leicht zu handhaben.
Behalten Sie es im selben Projekt und verwenden Sie Präprozessor Defines, die Sie unterschiedlich definieren, abhängig davon, welche Art von Main Sie in das aktuelle Projekt aufnehmen möchten. Hier befinden sich die Hauptleitungen in der gleichen Datei, aber sie können sich natürlich in verschiedenen Dateien befinden.
#if defined(MAIN_ONE)
int main()
{
// Do stuff
}
#elif defined(MAIN_TWO)
int main()
{
// Do some other stuff
}
#endif
Ich bin nicht bekannt, dass einfache Möglichkeit, zwei Netzsystem mit Eclipse bauen zu bauen. Die kleinste Änderung, die Sie vornehmen müssen, könnte darin bestehen, zu Makefiles zu wechseln und Makefile-Targets zu erstellen.
Stattdessen rate ich Ihnen, zu CMake zu wechseln. 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, Codebausteine oder Makefiles generieren (damit Sie die Eingabeaufforderung verwenden können).
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" aufgeführt werden.
Dazu erstellen Sie 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 diese abhängigen Projekte 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).
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 das ist, was Sie wollen.
- 1. So erstellen/verwenden Sie Themen in einem Flex-Projekt
- 2. So erstellen Sie mehrere App mit einem Projekt
- 3. So erstellen Sie globale Variablen in einem Grails-Projekt
- 4. So erstellen Sie eine Binärdatei aus einem Monogame-Projekt
- 5. So erstellen Sie ein VS2010-C++ - Projekt auf einem BuildServer
- 6. So erstellen Sie ein Java-Gravel-Projekt
- 7. So erstellen Sie .NET Platform Standard-Projekt
- 8. So verwenden Sie zwei Versionen von AFNetworking in demselben Projekt
- 9. So erstellen Sie ein Android Studio-Projekt aus einem Unterverzeichnis in einem Github Repo
- 10. Erstellen Sie zwei verschiedene mtext in einem einzigen Programm
- 11. So erstellen Sie ein Projekt in der Google Developers Console
- 12. Verwenden Sie zwei Interpreter in einem PyCharm-Projekt
- 13. So erstellen Sie ein SoapUI-Projekt mit Client-Zertifikat-Authentifizierung
- 14. So erstellen Sie verwandte Modelle in einem Formular in Schienen
- 15. So erstellen Sie zwei Textfelder in einer Alarmansicht, IOS
- 16. So konfigurieren Sie WCF in einem separaten DLL-Projekt
- 17. So ignorieren Sie Dateien oder Ordner in einem SVN-Projekt
- 18. So kombinieren Sie viele Projekte in einem Projekt
- 19. So verbinden Sie zwei Dateien in einem Versionskontrollsystem
- 20. Kombinieren Sie zwei Maven-Projekt
- 21. Erstellen nuget aus einem Projekt
- 22. See3cam Ubuntu-14.04 EclipseC++ Bibliothek Fehler
- 23. So erstellen Sie die Eigenschaftendatei in Netbeans
- 24. Erstellen Sie ein Projekt in Komodo Bearbeiten
- 25. So erstellen Sie Google App Engine-Projekt mit Gradle
- 26. So erstellen Sie ein Grafikobjekt in einem Etikett
- 27. So verwenden Sie zwei Filter in einem Datagrid
- 28. So kombinieren Sie die zwei verschiedenen in einem einzigen Array
- 29. So fügen Sie zwei Tabellenansichten in einem UIviewcontroller hinzu
- 30. Erstellen mehrere neue Projekt-APKs aus einem übergeordneten Projekt ionic
Wie verhindern Sie, dass sich das Containerprojekt darüber beschwert, dass es keine "alle" oder "sauberen" Ziele gibt? Zweitens, wie legen Sie die Reihenfolge fest, in der die Teilprojekte erstellt werden? (Im Moment enthält meine Projektgruppe ein Projekt, das eine Bibliothek erstellt, auf die alle anderen Projekte angewiesen sind, aber die Bibliothek wird nicht zuerst gebaut (die Launen der Namensgebung), was bedeutet, dass ich das Containerprojekt zweimal erstellen muss) – Urhixidur
@Urhixidur - Sie müssten die Bibliothek als eine Abhängigkeit der Programme markieren, die sie verwenden, aber ich kann mich nicht daran erinnern, wie Sie das in der Eclipse-Benutzeroberfläche tun können. Es ist jedoch ziemlich einfach, wenn Sie Ihre eigenen Makefiles schreiben. Für die erste Frage definiere einfach die make-Ziele (auch wenn sie gar nichts machen). – bta