[解決済み] CMake で /MD の代わりに /MT を使ってコンパイルする。
2023-05-06 21:27:56
質問
Windows SDKとNMakeのMakefileを使用して、Windows上でCMakeを使用しています。
デフォルトではコンパイル時に
/MD
コンパイラスイッチでコンパイルします。
でコンパイルするように変更するにはどうしたらよいでしょうか。
/MT
スイッチでコンパイルするように変更できますか?
どのように解決するには?
を修正することができます。
CMAKE_CXX_FLAGS_<Build Type>
および
CMAKE_C_FLAGS_<Build Type>
という変数があります。
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
CMake のフラグにすでに
/MD
を含んでいる場合、上記のコマンドが実行されるようにすることができます。
の後に
が実行された時点
/MD
が挿入される点(後で追加される
/MT
が挿入されます (後から追加された
set(CMAKE_CXX_FLAGS_RELEASE "/MT")
set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
あるいは、既存の
/MD
と
/MDd
の値は
/MT
と
/MTd
のようにすることで、それぞれ
set(CompilerFlags
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
)
foreach(CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
endforeach()
関連
-
[解決済み] CMakeにおけるデバッグとリリースの比較
-
[解決済み] MakefileとCMakeを使ったコンパイルの違いについて
-
[解決済み】CMakeでC++ 11を有効にするには?
-
[解決済み】CMakeをGNU Makeと一緒に使う:正確なコマンドを見るにはどうすればいい?
-
[解決済み】CMakeでGCCとClang/LLVMの切り替えを行う。
-
[解決済み】CMake:スクリプト内のアクセス可能なすべての変数を出力する
-
[解決済み】CMakeの出力を'bin'ディレクトリにする方法は?
-
[解決済み】CMakeファイルにリンカやコンパイルフラグを追加する方法は?
-
[解決済み] cmakeで共有ライブラリを作成する方法は?
-
[解決済み] WindowsでコマンドラインからCMAKEを使ってx86やx64をビルドするには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CMakeは "make uninstall "をサポートしていますか?
-
[解決済み] CMake の add_definitions が動作しないようです。
-
[解決済み】CMake:スクリプト内のアクセス可能なすべての変数を出力する
-
[解決済み】変数を設定・使用するCMakeの構文とは?
-
[解決済み】CMakeは具体的にどのように動作するのですか?
-
[解決済み] CMake target_include_directories スコープの意味
-
[解決済み] CMakeはどのように使われるのですか?[クローズド]。
-
[解決済み] cmake の `file(GLOB ... )` パターンから単一のファイルを除外するにはどうすればよいですか?
-
[解決済み] CMakeにおける関数とマクロの比較
-
[解決済み] CMakeLists.txtのデバッグはどうすればいいですか?