在CMake中,我想運行post build命令,它將可執行文件和所需的dll自動複製到用戶指定的位置。使用CMake可以嗎?在windows中使用CMake將可執行文件和DLL複製到用戶指定的位置
回答
這取決於你想要做什麼,下面是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允許你產生從一個文件另一種方法是用目標文件中的值替換變量。如果源文件不包含變量,則目標文件只是源文件的副本。但我不知道它是否適用於二進制文件。你應該仔細測試一下。
感謝哥們。你能幫我在這個問題。http://stackoverflow.com/questions/20767436/create-a-directory-based-on-釋放調試,編譯型的,cmake的 – thestar
我添加了自定義命令。
add_custom_command(目標文件夾POST_BUILD命令$ {} CMAKE_COMMAND -E copy_if_different源目的地「)
,並將其複製的DLL。
要複製的可執行文件,我用簡單的install命令。
http://www.cmake.org/Wiki/CMake:Install_Commands#New_INSTALL_Command
- 1. 使用CMake將Qt DLL複製到Windows上的可執行文件目錄
- 2. 如何將DLL文件複製到與使用CMake的可執行文件相同的文件夾中?
- 3. 使用cmake將文件複製到指定的目錄
- 4. 複製.dll文件到同一文件夾中,使用CMake的
- 5. CMake的可執行文件的位置
- 6. Cmake:當位置不存在時,使用add_custom_command將二進制文件複製到特定位置失敗
- 7. 在Windows 7中將用戶配置文件複製到默認配置文件
- 8. 如何使用CMake構建將特定清單文件嵌入到Windows DLL中?
- 9. 如何使用cmake複製dll的?
- 10. 在可執行文件中使用分組DLL DLL
- 11. 使用Linux dd在指定的位置複製和讀取文件
- 12. 使用命令行將文件複製到用戶文件夾
- 13. 如何指定在Cabal文件中輸出可執行文件的位置?
- 14. 找到SASS可執行文件的位置。 (使用rbenv)
- 15. 指定的任務可執行文件位置...無效
- 16. CMake:如何確定需要可執行文件的所有.DLL/.SO文件?
- 17. 如何使用CMake構建的可執行文件訪問Boost DLL?
- 18. 如何通過使用msi文件將文件複製到特定位置?
- 19. 在C#中使用MetroLog將日誌定向到指定的文件位置
- 20. 如何將庫鏈接到cmake中的可執行文件?
- 21. Cmake只鏈接到可執行文件
- 22. 如何在我的測試項目中使用其他文件夾/位置的可執行文件/ DLL?
- 23. 如何在Info.plist中指定32位和64位可執行文件
- 24. 使用java將hdfs文件複製到另一個hdfs位置
- 25. 將文件複製到多個位置
- 26. 使用OpenPyXL將XLSX文件保存到指定位置
- 27. 使用Javascript將文本文件保存在指定位置
- 28. 複製可執行文件鏈接到可執行文件目錄的所有dll
- 29. CMake:將ELF嵌入到可執行文件中
- 30. CMake - 僅在需要時將庫鏈接到可執行文件
你的意思是[安裝](http://www.cmake.org/cmake/help/v2.8.12/cmake.html#command:install)? (: – 2013-12-23 23:10:25
是的,但你有沒有很好的例子,我可以使用? – thestar