set(TestProject_additional_libs
optimized foobar.lib
debug foobard.lib
}
特にここで最適化/デバッグとはどういう意味ですか? これは、cmake を使用してライブラリを追加する標準的な方法ですか?
set(TestProject_additional_libs
optimized foobar.lib
debug foobard.lib
}
特にここで最適化/デバッグとはどういう意味ですか? これは、cmake を使用してライブラリを追加する標準的な方法ですか?
私には「誤用」のように見えます。それらはすべて変数に割り当てられているだけですTestProject_additional_libs
。target_link_librariesのようなもので展開されると、おそらく後で魔法が起こります。私はそのようなことができるとは知りませんでした。しかし実際、このように書かれていると実際に何が起こっているのかは明らかではありません。
前述のリンクからマニュアルを引用する:
「debug」、「optimized」、または「general」キーワードは、その直後のライブラリが対応するビルド構成にのみ使用されることを示します。
これは variable の値をTestProject_additional_libs
セミコロンで区切られたリストに設定しますoptimized;foobar.lib;debug;foobard.lib
。
通常、最適化されたビルド (Release など)に使用する必要があり、デバッグ ビルドで使用する必要があることを示す${TestProject_additional_libs}
ために、target_link_libraries
コマンドで使用されます。foobar.lib
foobard.lib
target_link_libraries(<target> <files> ${TestProject_additional_libs})
一時変数の作成を避けるために、target_link_libraries
呼び出し自体で同様の構文を使用することもできます。
target_link_libraries(<target> <files> optimized foobar.lib debug foobard.lib)