Eine Möglichkeit, cmake dazu zu bringen, x86 unter Windows mit Visual Studio zu erstellen, ist folgende:
- Starten Sie die Visual Studio-Eingabeaufforderung für x86
- Führen Sie cmake aus:
cmake -G "NMake Makefiles" \path_to_source\
- nmake
Eine Möglichkeit, cmake dazu zu bringen, x64 unter Windows mit Visual Studio zu erstellen, ist folgende:
- Starten Sie die Visual Studio-Eingabeaufforderung für x64
- Führen Sie cmake aus:
cmake -G "NMake Makefiles" \path_to_source\
- nmake
Wie kompiliere ich mit Cmake eine oder beide Architekturen? (wie es Visual Studio in der IDE macht)
c
visual-studio
cmake
cross-compiling
x86-64
010110110101
quelle
quelle
nmake
)Antworten:
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:
cmake -G "Visual Studio 16 2019" -A Win32 -S \path_to_source\ -B "build32" cmake -G "Visual Studio 16 2019" -A x64 -S \path_to_source\ -B "build64" cmake --build build32 --config Release cmake --build build64 --config Release
Führen Sie für frühere Versionen von CMake die folgenden Befehle aus:
mkdir build32 & pushd build32 cmake -G "Visual Studio 15 2017" \path_to_source\ popd mkdir build64 & pushd build64 cmake -G "Visual Studio 15 2017 Win64" \path_to_source\ popd cmake --build build32 --config Release cmake --build build64 --config Release
Von CMake generierte Projekte, die einen der Visual Studio-Generatoren verwenden, können über die Befehlszeile mit der Option
--build
gefolgt vom Erstellungsverzeichnis erstellt werden. Die--config
Optionen geben die Build-Konfiguration an.quelle
versuchen Sie es
CMAKE_GENERATOR_PLATFORM
z.B
// x86 cmake -DCMAKE_GENERATOR_PLATFORM=x86 . // x64 cmake -DCMAKE_GENERATOR_PLATFORM=x64 .
quelle
Neben
CMAKE_GENERATOR_PLATFORM
variabel gibt es auch den-A
Schaltercmake -G "Visual Studio 16 2019" -A Win32 cmake -G "Visual Studio 16 2019" -A x64
https://cmake.org/cmake/help/v3.16/generator/Visual%20Studio%2016%202019.html#platform-selection
-A <platform-name> = Specify platform name if supported by generator.
quelle