所以我已經看到了有關將外部dll文件移動到當前項目的.exe輸出位置以供運行時使用的其他文章,但我似乎遇到了一個奇怪的問題,我無法找到有關。CMake複製多個DLL失敗
我使用下面的自定義命令我libfreenect2 dll文件複製到我的項目我的輸出目錄:
add_custom_command(TARGET kinect_feeds POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"libfreenect2_output_path/bin/*.dll"
$<TARGET_FILE_DIR:kinect_feeds>)
CMake的設置我的項目就好了,但是當我去跑在Visual Studio中的命令嘗試複製文件時出錯。我認爲問題與通配符有關。我使用Visual Studio中的錯誤輸出將完整的命令複製到git bash窗口,並且它按預期工作。此外Visual Studio中有,如果他們被明確定義,像這樣沒有問題移動多個文件:
add_custom_command(TARGET kinect_feeds POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"libfreenect2_output_path/bin/freenect2.dll"
"libfreenect2_output_path/bin/glfw3.dll"
$<TARGET_FILE_DIR:kinect_feeds>)
我的問題是,通配符不CMake的工作命令時,由Visual Studio的執行還是有,我失去了一些東西?現在我只是明確輸出所有的DLL文件,但我希望避免這種情況。
我正在使用CMake和Visual Studio 2015社區版的最新版本。
在這種情況下,通配符引用是依賴於「shell」的。自從我使用VS以來已經很長時間了,但也許你的通配符中的單引號會起作用,而不是雙引號。 – nega
我給了單引號一個嘗試,它仍然不喜歡該命令。我會研究VS可能接受的通配符。我想我可能必須聰明地逃避角色。 – Wired365