2013-10-21 7 views
7

Ein paar Probleme und hoffe, ich kann Hilfe finden.Verknüpfen mit mehreren .obj für Unit-Tests eine Konsolenanwendung

Ich habe zwei Projekte unter der gleichen Lösung in Visual Studio 2012

A wenig Hintergrunds I Nocken eine Konsolenanwendung zu schaffen, die als ein Exe gibt diese in einem Projekt.

In einem anderen Projekt habe ich Google Test eingerichtet, um Komponententests für die Klassen im Konsolenanwendungsprojekt auszuführen.

Wenn ich in der Lage wäre, das Hauptprojekt in eine statische Bibliothek zu kompilieren, gäbe es kein Problem, weil es eine Verbindung zur .lib geben könnte, aber das ist keine Option.

Ich habe festgestellt, dass die Verknüpfung mit der .obj funktioniert, aber ich muss manuell jeden in den Linker eingeben -> Eingabe und aufgrund der es wird eine große Anzahl von Klassen Ich kann sehen, dass es chaotisch wird.

Wie löse ich dieses Problem, gibt es eine Möglichkeit, mit allen .obj im selben Ordner zu verknüpfen oder gibt es eine Option, die ich vermisse?

Antwort

20

hatte ich genau die gleiche Konfiguration wie bei Ihnen und das ist, was ich getan habe:

ich die LIB-Dienstprogramm von Visual Studio verwendet, um alle OBJ-Dateien in eine Lib-Bibliothek zu setzen, und dann konnte ich meine Gtest machen Projektlink dazu.

Setzen Sie den Befehl

lib /NOLOGO /OUT:"$(TargetPath).lib" "$(ProjectDir)\$(Configuration)\*.obj" 

in die „Ereignisse Build“/„Post-Build-Ereignis“ des Hauptprojekt, können Sie Ihre Konsolenanwendung als .exe und in der gleichen Zeit halten Aggregat alle obj-Dateien in eine aktuelle lib.

Hoffe es hilft!

Übrigens ist dieses Problem ein bisschen zu diesem Beitrag ähnlich: Linker error - linking two "application" type projects in order to use Google Test und ich denke, es könnte nützlich sein, es hier zu verknüpfen.

+1

Genau das, was ich brauchte, danke. –

Verwandte Themen