2016-05-12 39 views
-1

我能以某種方式找到放置在add_executable中的二進制文件的位置嗎?如何知道,二進制編譯在哪裏?

我有許多CMakeLists - 每個二進制文件和每個二進制文件,其中包括項目的所有部分。

當我執行的cmake -D CMAKE_BUILD_TYPE =釋放路徑/要/項目,不是讓店內所有的二進制文件到目錄中,其中他們的CMakeList(每個不同的地方)。

另一方面,當我沒有CMAKE_BUILD_TYPE的一些命令時,所有的二進制文件都被放入當前目錄。你能解釋我爲什麼嗎?

我需要運行一些二進制文件,因爲它的輸出也是包的一部分。我們如何知道這些路徑?

+0

你使用的是什麼主機環境和工具鏈?你是在做源代碼還是在源代碼之外?如果您想要在一個目錄中獲取所有可執行文件,您可以設置['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>