由於'Abc_Win.dll'被共享('dll')並需要複製到目標EXE,因此我添加了一個自定義目標- 喜歡這個。我正在使用MS-VisualStudio 2005-2011並使用cmake 2.8.8。
add_custom_target("Abc_Win.dll")
add_custom_command(TARGET "Abc_Win.dll" POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"MyDllSource/${CMAKE_CFG_INTDIR}/Abc_Win.dll"
"MyExeDest/${MWEB_CMAKE_CFG_INTDIR}/Abc_Win.dll")
set_property(Abc_Win.dll" PROPERTY FOLDER ${MWEB_FOLDER_ADDON}/${MWEB_FOLDER_RTE})
以上所有的工作就像我期望的和'Abc_Win.dll'在我建立時得到正確的地方。
現在我添加下面的安裝命令 - 期望在我的EXE旁邊的「Bin」目錄中的「Abc_Win.dll」。
install(FILES "MyDllSource/${CMAKE_CFG_INTDIR}/Abc_Win.dll" DESTINATION "Bin")
當我建立現在CMakePredefinedTargets->安裝(不要緊我使用的MS-StudioVersion)我在cmake的生成文件「cmake_install.cmake」總是得到一個生成錯誤:
- 文件安裝找不到
- 「MyDllSource/$(配置) /Abc_Win.dll」
我明白,CMake的不使用來自MS-VS的構建規則 - 就像它爲add_custom_command一樣。它似乎也是這個cmake文件沒有內容$(CONFIGRATION)的內容,它被設置爲'Debug'。
有沒有人知道如何解決這個問題?幫助將非常感激。謝謝。
非常感謝弗雷澤 - 只是因爲我新我不能增加答案一樣有用。它幫助了你,讓我非常開心;-)一個小小的評論:對於VS-Studio使用add_custom_command來查找我的庫,我仍然需要使用'MWEB_CMAKE_CFG_INTDIR'。 – user3208544
@ user3208544很高興幫助:)而且,自定義命令中的'CMAKE_INSTALL_CONFIG_NAME'將爲空,因爲該命令是在構建時執行的,而不是安裝時間。 – Fraser