[過去ログ] ビルド自動化ツールCMake Part.1 (72レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
35
(2): 2021/06/16(水)18:27 ID:z1aHwQBP(1/7) AAS
makeの場合、環境変数PATHの切り替えで32bit用と64bit用のコンパイラが簡単に切り替えられるが、
cmakeは余計なことをしてくれるので不具合が発生する。

cmake -G "Visual Studio 16 2019" -A Win32 ..
こっちは動くが
cmake -G "Visual Studio 16 2019" -A Win64 ..
こっちは動かない。
ただ、何もしないと勝手にWin64のコンパイラを起動するので指定なしで代用できる。
この時のCMakeLists.txtは自分の書いたものでなくて、そこそこ有名なGitHubのソフトのものなので、
CMakeLists.txtの問題でなく、cmakeそのものの問題だと予想される。

さらに、/MT, /MD, /MTd, /MDdと四種類のライブラリをビルドしようとすると
省3
36: 蟻人間 ◆T6xkBnTXz7B0 2021/06/16(水)18:34 ID:Qk2ktN9D(1/5) AAS
>>35
それはよくある間違いで、Win64ではなくx64を指定しないといけないらしい。
外部リンク:stackoverflow.com
38
(2): 蟻人間 ◆T6xkBnTXz7B0 2021/06/16(水)19:13 ID:Qk2ktN9D(2/5) AAS
>>35
/MT, /MD, /MTd, /MDdについてだが、CMake 3.15よりMSVC_RUNTIME_LIBRARYという変数が使えるらしい。

外部リンク[html]:cmake.org
外部リンク:stackoverflow.com

ターゲットを分けて、それぞれについてset_propertyすれば可能。

add_executable(foo1 foo.c)
set_property(TARGET foo2 PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
add_executable(foo2 foo.c)
set_property(TARGET foo2 PROPERTY
省3
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.261s*