【发布时间】:2016-05-05 05:34:58
【问题描述】:
我有一个 cmake,我正在将一个 dll 从一个位置复制到另一个位置,如下所示:
set(dllpath "C:/images/own/standard/abc.dll")
STRING(REGEX REPLACE "/" "\\\\" copyDll \"${dllpath }\")
STRING(REGEX REPLACE "/" "\\\\" copyDest \"${CMAKE_BINARY_DIR}/_runtime/bin_${CMAKE_BUILD_TYPE}\")
add_custom_command(TARGET my_test POST_BUILD COMMAND copyDll ${copyDest})
然后它显示错误为:
"C:\images\own\standard\abc.dll\" is not recognized as internal or external command.
如果我按以下方式复制 dll,它会打开 dll 文件并且不复制 dll:
STRING(REGEX REPLACE "/" "\\\\" copyDest \"${CMAKE_BINARY_DIR}/_runtime/bin_${CMAKE_BUILD_TYPE}\")
add_custom_command(TARGET my_test POST_BUILD COMMAND "C:\images\own\standard\abc.dll"${copyDest})
为什么 dll 文件被打开但没有被复制?
【问题讨论】:
-
您错过了复制命令本身。
COMMAND期望在主机系统命令 shell 上工作的东西。这是您关于将 DLL 作为构建后步骤复制的第三个连续问题,并且 - 对不起,我不得不说 - 您的代码示例的质量正在下降。最重要的是,如果您在last question 的答案中尝试代码,您能否将任何问题作为评论放在此处?你可以用一个问题解决所有这些问题。
标签: cmake