Verwenden von MSBuild, um eine einzelne cpp-Datei zu kompilieren

8

Ich kann das gesamte Projekt erstellen, indem ich MSBuild von der Befehlszeile aus aufrufen:

%Vor%

Ich habe jedoch keine Informationen zum Kompilieren einer einzelnen Datei gefunden. Im Wesentlichen möchte ich etwas wie

machen %Vor%

Ich möchte nicht direkt 'cl.exe' von der Kommandozeile aus verwenden, da dies mich zwingen würde, alle relevanten Befehlszeilenoptionen für cl.exe und alle Umgebungsvariablen zu definieren, eine Aufgabe, die MSBuild bereits für mich erledigt .

Gibt es einen Weg, das zu erreichen?

Und bitte, schlagen Sie nicht vor, 'make' oder 'ant' oder was auch immer zu verwenden, ich benötige speziell MSBuild. Danke

    
Yariv 13.11.2010, 12:15
quelle

1 Antwort

8

MSBuild in VS2008 verwendet VCBuild, um die eigentliche Arbeit zu erledigen, und VCBuild hat keine Option, die ich kenne, um eine einzelne Datei zu erstellen. (Bei VS2010 hat sich das geändert, da kann man tatsächlich eine Kompilierung einer einzelnen Datei mit etwas wie "/t:ClCompile "p:/SelectedFiles="main.cpp" aufrufen)

Ich kann mir einige Ideen einfallen lassen, die sicherlich funktionieren werden, aber einige zusätzliche Arbeit erfordern und nicht sehr einfach sind:

  • Sie können msbuild Devenv aufrufen, um eine einzelne Datei zu kompilieren:

    %Vor%

    Dies öffnet jedoch das IDE-Fenster und macht es ziemlich schwer herauszufinden, ob die Kompilierung tatsächlich erfolgreich war oder nicht.

  • msbuild ruft ein Skript / Programm auf, das den vcproj analysiert und eine Kopie erstellt, bei der alle Quellen im Quelldateibereich entfernt sind, mit Ausnahme der einen Datei, die Sie kompilieren wollen. Dann muss msbuild das Projekt mit vcbuild / pass1 erstellen (pass1 = nur kompilieren, keine Verbindung).

  • Halten Sie immer eine Antwortdatei mit den gleichen Optionen wie Ihr vcproj und lassen Sie msbuild cl aufrufen, um die einzelne Datei mit der Antwortdatei zu kompilieren. (Erstellen der Antwortdatei ist so einfach wie das Öffnen der Projekteigenschaften in VS, gehen Sie zu C ++ - & gt; Befehlszeile und kopieren alles aufgelistet)

stijn 13.11.2010, 13:22
quelle

Tags und Links