我正在使用CMAKE
来构建我的C ++项目。在构建结束时,我想将dlls
复制到上一级目录。我使用以下命令来实现这一点:
ADD_CUSTOM_COMMAND(TARGET ${LIB_TARGET}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/win64/dll
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${LIB_TARGET}> ${PROJECT_SOURCE_DIR}/win64/dll/.
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE_DIR:${LIB_TARGET}> ${PROJECT_SOURCE_DIR}/win64/dll/.
)
当它尝试将setLocal
复制到dll
目录时,我得到一个win64
错误。似乎复制失败,因为win64
目录是read-only
。如何使输出构建目录win64
可写?
谢谢!
答案 0 :(得分:0)
问题是当我运行CMAKE来构建项目时,DLL正在使用中。我关闭了正在使用DLL的应用程序,并且可以正常工作