我有一个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文件被打开但没有被复制?
答案 0 :(得分:1)
尝试file(COPY ...)
复制文件。在配置之后使用这样的命令是坏样式。
如果您坚持使用add_custom_command
,请同时使用cmake -E copy
。文档:https://cmake.org/cmake/help/v3.5/manual/cmake.1.html