2013-12-23 26 views

回答

4

這取決於你想要做什麼,下面是4種不同的解決方案,可能還有其他人添加到這個列表中......

安裝()命令

如果你要複製的可執行文件和DLL您剛剛建立你可以使用install() command,但卻很有效的用戶身份運行make install只有當。

設置變量

如果你想直接在構建時做到這一點,你可以使用CMake的變量來配置你的構建。這些變量在http://www.cmake.org/Wiki/CMake_Useful_Variables

EXECUTABLE_OUTPUT_PATH 
    set this variable to specify a common place where CMake should put all executable files (instead of CMAKE_CURRENT_BINARY_DIR) 
    SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) 
LIBRARY_OUTPUT_PATH 
    set this variable to specify a common place where CMake should put all libraries (instead of CMAKE_CURRENT_BINARY_DIR) 
    SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) 

一個定製的命令

描述如果你要複製你沒有建立自己(二進制庫等),其他可執行文件或DLL,一個好的解決方案是使用一個自定義命令。在這種情況下,在所有的操作系​​統上運行一個可移植的解決方案來複制文件可能非常困難。這就是爲什麼CMake的直接從其cmake可執行文件提供此功能(與別人):

在命令行中,你可以使用:

cmake -E copy_if_different <SOURCE> <DESTINATION> 

不要忘記你可以使用${CMAKE_COMMAND}一個CMakeLists文件調用cmake的可執行變量;)

configure_file()命令

而完成,the configure_file()command允許你產生從一個文件另一種方法是用目標文件中的值替換變量。如果源文件不包含變量,則目標文件只是源文件的副本。但我不知道它是否適用於二進制文件。你應該仔細測試一下。

+0

感謝哥們。你能幫我在這個問題。http://stackoverflow.com/questions/20767436/create-a-directory-based-on-釋放調試,編譯型的,cmake的 – thestar

相關問題