CMAKE创建具有写访问权的目录

时间:2018-10-04 13:45:09

标签: c++ dll cmake copy

我正在使用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可写?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是当我运行CMAKE来构建项目时,DLL正在使用中。我关闭了正在使用DLL的应用程序,并且可以正常工作