[解決済み] WindowsでコマンドラインからCMAKEを使ってx86やx64をビルドするには?
2023-01-15 22:26:06
質問
WindowsでVisual Studioを使ってcmakeでx86をビルドさせる方法は、以下のようなものがあります。
- x86 用の Visual Studio コマンド プロンプトを起動します。
-
cmakeを実行します。
cmake -G "NMake Makefiles" \path_to_source\
- nmake
WindowsでVisual Studioを使ってcmakeでx64をビルドさせる方法の1つは、以下のようなものです。
- Visual Studio のコマンド プロンプトを x64 用に起動します。
-
cmakeを実行します。
cmake -G "NMake Makefiles" \path_to_source\
- 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
オプションはビルド構成を指定します。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] VS2013 の Developer Command Prompt はどこにありますか?
-
[解決済み] Code::Blocks アプリケーションをコンパイルできない
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] 1サイクルあたり4FLOPの理論上の最大値を達成するにはどうすればよいですか?
-
[解決済み] Visual Studioでコマンドラインパラメータを使ったデバッグを行う
-
[解決済み] Visual Studioのコンパイルエラー "mismatch between processor architecture "を修正するにはどうしたらいいですか?
-
[解決済み] なぜC言語では構造体を頻繁にtypedefする必要があるのですか?
-
[解決済み] C++でCMakeがリンカ言語を決定できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
g++が内部・外部コマンドソリューションとして認識されない、MinGWを初めて使うときの落とし穴
-
VSCodeでCプログラムを書くとエラーになる:ソースファイル "stdio.h" を開くことができない
-
ポインタ定数および定数ポインタ
-
Solve Dev-c++ [エラー] 'for' ループの初期宣言は、C99 または C11 モードでのみ許可されます。
-
[解決済み] munmap_chunk(): 無効なポインタ
-
[解決済み] C言語の書式指定子 %ul と %lu の違いは何ですか?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] 難読化Cコードコンテスト2006。sykes2.cの解説をお願いします。
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] longをフォーマットするprintfの引数は何ですか?