1. ホーム
  2. c

[解決済み] WindowsでコマンドラインからCMAKEを使ってx86やx64をビルドするには?

2023-01-15 22:26:06

質問

WindowsでVisual Studioを使ってcmakeでx86をビルドさせる方法は、以下のようなものがあります。

  1. x86 用の Visual Studio コマンド プロンプトを起動します。
  2. cmakeを実行します。 cmake -G "NMake Makefiles" \path_to_source\
  3. nmake

WindowsでVisual Studioを使ってcmakeでx64をビルドさせる方法の1つは、以下のようなものです。

  1. Visual Studio のコマンド プロンプトを x64 用に起動します。
  2. cmakeを実行します。 cmake -G "NMake Makefiles" \path_to_source\
  3. nmake

Cmake を使用して、どのようにどちらかまたは両方のアーキテクチャをコンパイルしますか?(Visual StudioがIDEからそれを行う方法のように)

どのように解決するのですか?

CMakeではできません。2 つの別々のビルド フォルダーを生成する必要があります。1 つは x86 NMake ビルド用、もう 1 つは x64 NMake ビルド用です。CMake では、両方のアーキテクチャをカバーする 1 つの Visual Studio プロジェクトを生成することもできません。

Visual Studio コマンドプロンプトを起動せずに、コマンドラインから 32 ビットと 64 ビットの両方の Visual Studio プロジェクトをビルドするには、通常の Visual Studio ジェネレーターを使用します。

CMake 3.13 またはそれ以降では、次のコマンドを実行します。

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

CMakeの以前のバージョンでは、以下のコマンドを実行してください。

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

Visual Studio ジェネレータの一つを使用する CMake 生成プロジェクトは、コマンドラインからオプション --build の後にビルドディレクトリを指定します。この場合 --config オプションはビルド構成を指定します。