Eine Solution, 2 Projekte (Visual Studio 2008)
-
Hallo zusammen
Ich habe eine Solution, welche 2 Projekte beinhaltet: Nemesis und Nemesis_Testing.
Nun muss ich vom Nemesis_Testing auch auf die Sourcefiles von Nemesis zugreifen. Gibt es hierfür eine Möglichkeit, ohne sämtliche Sourcedateien immer hin und her kopieren zu müssen. Alternativ wäre es mir auch gelegen, zusätzlich zum Exe auch eine statische Lib zu generieren, welche ich dem Linker des zweiten Projekts zuweisen kann.Das eigentliche Problem ist halt, dass es beim kompilieren von Nemesis_Testing zu einem Linkerfehler kommt, weil er natürlich die Sourcefiles aus Nemesis nicht berücksichtigt...
Mfg Samuel
-
Eine weitere Möglichkeit wäre vielleicht auch ein Verweis auf die obj Files vom Nemesis Projekt für den Linker des Nemesis_Testing Projekts, doch auch hierfür habe ich keine verfügbaren Linkeroptionen gefunden?
-
Die Idee mit der statischen Lib ist richtig. Einfach ein 3. Projekt vom Typ "Statische Bibliothek" (kann man im Anwendungs-Assistenten angeben) erstellen und alle CPP und HPP Dateien nach dort verschieben. Die generierte Lib in die anderen zwei Projekte einbinden und unter Projekt | Projektabhänigkeiten... angeben, dass die anderen beiden Projekte abhängig von den Lib-Projekt sind.
Achso - Habe deine Frage noch nicht ganz beantwortet:
Zusätzliche Libs trägt man in ein Projekt ein, indem man in den Projekteigenschaften unter Konfigurationseigenschaften | C/C++ | Allgemein | Zusätzliche Includeverzeichnisse das Verzeichnis zu der/den Headerdateien der Lib(s) einträgt und unter Konfigurationseigenschaften | Linker | Eingabe | Zusätzliche Abhängigkeiten die Lib(s) mit vollständigen Pfad einträgt. Ggf. unter Verwendung von Macros, z.B. $(OutDir). Alle Pfade sollten relativ zum Verzeichnis der Solution sein. Um das Projekt portabel zu halten.
-
Hallo BerndD
Ich kann mich ehrlich gesagt nicht so recht mit dieser Idee mit dem 3. Projekt anfreunden. Ich möchte mit dem Testing Projekt schliesslich noch andere (bereits existierende) Projekte testen und da jedesmal noch ein Hilfsprojekt erzeugen...Gibt es keine Möglichkeit, Visual Studio 2008 Projekt mitzuteilen, er solle doch so gut sein und neben der exe noch eine lib erstellen? Oder dass ich einem solchen Projekt ein Verzeichnis mit obj Datein angeben kann, in welchen er nach den entsprechenden Symbolen sucht?
Mfg Samuel
-
Ishildur schrieb:
Ich kann mich ehrlich gesagt nicht so recht mit dieser Idee mit dem 3. Projekt anfreunden. Ich möchte mit dem Testing Projekt schliesslich noch andere (bereits existierende) Projekte testen und da jedesmal noch ein Hilfsprojekt erzeugen...
In das Lib-Projekt kannst du alles reinpacken. Du brauchst also nur 2*exe+1 Projekte. Für jedes Exe-Projekt ein Test-Projekt. Besser strukturiert geht doch nicht! Du könntest natürlich auch mit den Konfigurations-Manager eine "Test" Konfiguration deines Projektes erstellen. Oder du missbrauchst gleich die DEBUG Konfiguration dazu, indem du bei DEBUG deine Test-Routinen mit in die Exe kompilierst. Dann sparst du dir die Test-Projekte. Damit könnte ich mich aber nicht anfreunden.
Ishildur schrieb:
Gibt es keine Möglichkeit, Visual Studio 2008 Projekt mitzuteilen, er solle doch so gut sein und neben der exe noch eine lib erstellen? Oder dass ich einem solchen Projekt ein Verzeichnis mit obj Datein angeben kann, in welchen er nach den entsprechenden Symbolen sucht?
Lib und exe, das sind zwei Ziele. Glaube mir, es ist besser du machst das mit getrennten Projekten.
Eine Idee wäre noch, ein Testprogramm für alle Programme zu machen und über Kommandozeile den Testprogramm mitteilen welches Programm zu testen ist. Du kannst das Testen als Postbuildereignis in die exe-Projekte eintragen (geht bei getrennten Testprojekten aber eleganter). Jedesmal wenn ein Exe neu erzeugt wird, werden gleich die zugehörige Test gefahren und ggf. die Ergebnisse in der IDE ausgegeben.