Ich verwende msbuild in der Befehlszeile, um eine generierte Lösungsdatei zu erstellen:
%Vor%Das Problem ist, dass die von cmake erzeugte Lösung ein Projekt INSTALL hat, das nicht standardmäßig erstellt wird.
%Vor%Wie kann ich das Ziel INSTALL erzwingen erstellen, ohne die Auflösung manuell zu öffnen und das Kontrollkästchen für die Konfiguration zu aktivieren?
Eine Lösung besteht darin, die vcproj-Datei direkt aufzurufen (wie ich es hier getan habe)
%Vor%aber dies druckt die Warnung
%Vor%Wie Sie sehen können, ist der Build erfolgreich. Ich bin in der Lage, den korrekten Build sicherzustellen, indem ich die Lösung zuerst anrufe, aber ich möchte die Lösung erzwingen , um auch das Projekt INSTALL zu erstellen.
Irgendwelche Ideen?
Soweit ich weiß, ist das nicht möglich. Wenn Sie sich die Befehlszeilenoptionen von msbuild und die Lösungsdatei ansehen, gibt es nichts, was sie unterstützt. Aber da Sie cmake verwenden, können Sie damit alles für Sie erstellen, ohne es manuell tun zu müssen. Ich fand diesen Thread , der im Grunde dieselbe Frage stellt wie Sie und die korrekte Syntax hat ich benutze die Idee schon, ich gebe es den Kommentar:
%Vor% Wenn Sie etwas weiter gehen, scheint es aus den Optionen devenv
cmand line die gewünschte Funktionalität zu haben. Dies erzwingt ein Build des angegebenen Projekts, auch wenn es nicht im Konfigurationsmanager aktiviert ist:
Stijns Antwort ist die "idiomatische" Art, Ziele durch cmake zu erstellen.
Beachten Sie jedoch, dass MSbuild beide Projektdateien für Projektdateien und erstellen kann. Anstatt msbuild zlib.sln
aufzurufen, können Sie auch msbuild ALL_BUILD.vcxproj
aufrufen.
Ähnlich können Sie msbuild INSTALL.vcxproj
aufrufen.
Bei Verwendung der von CMake Version 3.2.2 generierten Lösung ist es in der Tat nicht möglich, das INSTALL-Ziel von msbuild über die Lösung zu erstellen. Die Ursache liegt darin, dass die Lösung für das INSTALL-Ziel nur Einträge wie im Abschnitt GlobalSection (ProjectConfigurationPlatforms) enthält:
%Vor%Wenn Sie Einträge wie diese hinzufügen:
%Vor%Dann wird es möglich, das INSTALL-Ziel mit einem Befehl wie diesem zu erstellen:
%Vor%Tags und Links visual-studio msbuild cmake