所以我已经看到了有关将外部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