Wie erstelle ich x86 und / oder x64 unter Windows über die Befehlszeile mit CMAKE?

71

Eine Möglichkeit, cmake dazu zu bringen, x86 unter Windows mit Visual Studio zu erstellen, ist folgende:

  1. Starten Sie die Visual Studio-Eingabeaufforderung für x86
  2. Führen Sie cmake aus: cmake -G "NMake Makefiles" \path_to_source\
  3. nmake

Eine Möglichkeit, cmake dazu zu bringen, x64 unter Windows mit Visual Studio zu erstellen, ist folgende:

  1. Starten Sie die Visual Studio-Eingabeaufforderung für x64
  2. Führen Sie cmake aus: cmake -G "NMake Makefiles" \path_to_source\
  3. nmake

Wie kompiliere ich mit Cmake eine oder beide Architekturen? (wie es Visual Studio in der IDE macht)

010110110101
quelle
1
Gleiches hier, aber es scheint eine Lösung zu geben: zeroset.mnim.org/2015/07/15/… (und das ohne die Eingabeaufforderung zu schließen und zu verwenden nmake)
Tomasz Gandor

Antworten:

133

Dies ist mit CMake nicht möglich. Sie müssen zwei separate Build-Ordner generieren. Eine für den x86-NMake-Build und eine für den x64-NMake-Build. Sie können mit CMake auch kein einziges Visual Studio-Projekt generieren, das beide Architekturen abdeckt.

Verwenden Sie die regulären Visual Studio-Generatoren, um Visual Studio-Projekte über die Befehlszeile für 32-Bit und 64-Bit zu erstellen, ohne eine Visual Studio-Eingabeaufforderung zu starten.

Führen Sie für CMake 3.13 oder neuer die folgenden Befehle aus:

Führen Sie für frühere Versionen von CMake die folgenden Befehle aus:

Von CMake generierte Projekte, die einen der Visual Studio-Generatoren verwenden, können über die Befehlszeile mit der Option --buildgefolgt vom Erstellungsverzeichnis erstellt werden. Die --configOptionen geben die Build-Konfiguration an.

Sakra
quelle
Gibt es eine Möglichkeit, eine Eingabeaufforderung + zwei Build-Verzeichnisse zu verwenden und beide Architekturen zu erstellen, ohne die x86-Eingabeaufforderung und dann die x64-Eingabeaufforderung beenden und starten zu müssen?
010110110101
52

versuchen Sie es CMAKE_GENERATOR_PLATFORM

z.B

Zam
quelle