2016-05-12 2 views
-1

add_executableによってバイナリがどこに配置されるのか何とか見つけることができますか?バイナリはどのようにコンパイルされていますか?

私は多くのCMakeListsを持っています - それぞれのバイナリとお互いに、私はプロジェクトのすべての部分を含んでいます。

私は彼らのCMakeList(別の場所にそれぞれ)のディレクトリの中にストアすべてのバイナリを作るよりも/プロジェクトにcmakeの-D CMAKE_BUILD_TYPE =リリース・パスを/、実行します。

一方、私がCMAKE_BUILD_TYPEのないコマンドを実行すると、すべてのバイナリがカレントディレクトリに配置されます。なぜ私に説明できますか?

出力もパッケージの一部であるため、バイナリを実行する必要があります。どうすればその経路を知ることができますか?

+0

どのホスト環境とツールチェーンを使用していますか?ソース内またはソース外のビルドを行いますか?すべての実行ファイルを1つのディレクトリに入れたい場合は、['CMAKE_RUNTIME_OUTPUT_DIRECTORY'](https://cmake.org/cmake/help/latest/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.html)を設定することができます。 – Florian

+0

申し訳ありませんが、問題は、ファイルのいずれかの仲間のどこかにCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE/DEBUGを設定しました。 – lofcek

答えて

0

バイナリ出力の予測可能な場所を使用する場合は、RUNTIME_OUTPUT_DIRECTORYターゲットプロパティを設定します。

一方、add_custom_commandを使用してビルド中にそれらを実行するだけであれば、ターゲット名をコマンドに入れることができ、CMakeは実際のパスを置き換えます。ジェネレータ式を受け入れる他のコンテキストでは、$<TARGET_FILE_NAME:target>を使用することもできます。

関連する問題