2010-11-29 4 views

Antwort

1

Wie würden Sie den Unterschied zwischen den 2 verschiedenen Hauptprogrammen machen? Es ist ziemlich kompliziert zu wissen, welche Quelle für das Programm 1 und welche Quelle für das Programm 2 ist. Sie benötigen also 2 verschiedene Projekte für 2 ausführbare Dateien.

Wenn Sie Quellcode zwischen Ihren beiden Projekten freigegeben haben, können Sie eine Bibliothek haben (in einem anderen Projekt ^^).

6

Wenn Sie mehr als eine ausführbare Datei erstellen möchten, können Sie mehrere Projekte in derselben "Lösungs" -Datei definieren.

+2

Dies und auch nichts hält Sie davon ab, einige oder alle der gleichen Dateien in mehreren Projekten in der gleichen Lösung zu verwenden. z.B. Wenn Sie sowohl eine 32-Bit- als auch eine 64-Bit-Version einer Komponente erstellen möchten, ohne zwei separate Builds mit unterschiedlichen Konfigurationen ausführen zu müssen, verfügt Ihre Lösung möglicherweise über zwei Projekte, die auf genau die gleichen Dateien verweisen, aber unterschiedliche Ausgaben und etwas unterschiedliche Ergebnisse aufweisen Setups. –

1

C++ hat im Allgemeinen kein Konzept einer Lösung ... der Standard definiert nur, was im Kontext jeder Übersetzungseinheit geschieht (einige davon beziehen sich auf die Erstellung von Objekten, die eine Verbindung herstellen können). Das am weitesten verbreitete Projektaufbauwerkzeug, das für die Entwicklung verwendet wird, ist wahrscheinlich immer noch make, wodurch mehrere Ziele definiert werden können.

1

Da in Visual Studio, der Begriff "Projekt" ist definiert, um die Einheit zu sein (eine Reihe von Quelldateien), die ein binären Build Artefakt (dll/exe/statische lib/...) emittiert.

Hinweis: Ein Projekt kann und erzeugt tatsächlich verschiedene binäre Artefakte (Debug vs. Release vs. configuration-xy), aber normalerweise alle aus demselben Satz von Quelldateien.

Wenn Sie mehr als eine ausführbare Datei mit variierendem aber überlappende Satz von Quelldateien erstellen möchten, dann sollten Sie Ihre Lösung in mehrere Projekte aufgeteilt:

  • Die überlappende (e) von Quelldateien gehen in Ein Projekt, das eine statische Lib (s) generiert (oder DLL, wenn Sie möchten)
  • Der eindeutige Satz von Quelldateien für jede ausführbare Datei wird für jede ausführbare Datei in ein separates Projekt geschrieben und jedes ausführbare Projekt wird mit dem Projekt mit statischer Bibliothek verknüpft (s).
Verwandte Themen