2015-02-05 22 views
20

Jednym ze sposobów, aby uzyskać cmake do budowania x86 Windows z Visual Studio jest tak:Jak zbudować x86 i/lub x64 w systemie Windows z wiersza poleceń z CMAKE?

  1. Uruchom program Visual szybka Studio Polecenie x86
  2. Run CUpewnij: cmake -G "NMake Makefiles" \path_to_source\
  3. nUpewnij

One sposób, aby uzyskać cmake do budowania x64 na Windows z Visual Studio jest jak:

  1. Uruchom program Visual Studio wiersza poleceń dla x64
  2. Run cmake: cmake -G "NMake Makefiles" \path_to_source\
  3. nUpewnij

Korzystanie CUpewnij, jak mogę skompilować jednej lub obu architektur? (podobnie jak Visual Studio robi to w IDE)

+1

To samo, ale wydaje się, że istnieje rozwiązanie: http://zeroset.mnim.org/2015/07/15/building-visual-studio-x86-and-x64-binaries-with-cmake-nmake- i-qt-creator/(i to bez zamykania monitu i używania 'nmake') –

Odpowiedz

52

Nie można tego zrobić przy pomocy CMake. Musisz wygenerować dwa osobne foldery kompilacji. Jeden dla kompilacji x86 NMake i jeden dla kompilacji x64 NMake. Nie można wygenerować pojedynczego projektu Visual Studio obejmującego obie architektury z CMake.

Aby zbudować projekty Visual Studio z wiersza poleceń zarówno dla 32-bitowych i 64-bitowych bez uruchamiania wiersza polecenia Visual Studio, użyj regularne generatory Visual Studio:

mkdir build32 & pushd build32 
cmake -G "Visual Studio 12 2013" \path_to_source\ 
popd 
mkdir build64 & pushd build64 
cmake -G "Visual Studio 12 2013 Win64" \path_to_source\ 
popd 
cmake --build build32 --config Release 
cmake --build build64 --config Release 

CUpewnij generowane projektów, które używają jednego Generatory Visual Studio można budować z wiersza poleceń za pomocą opcji --build, po której następuje katalog kompilacji. Opcje --config określają konfigurację kompilacji.

+0

Czy istnieje sposób na użycie jednego wiersza poleceń + dwóch katalogów kompilacji i utworzenie obu architektur bez konieczności zamykania i uruchamiania znaku zachęty x86, a następnie znak zachęty x64? – 010110110101

+0

Zobacz zaktualizowaną odpowiedź. – sakra