我需要复制
C:\ opencv-3.4.0.-opencl \ bin \ Debug \ * .dll => 的Myproj \构建\ BIN \调试\ *。DLL
以及
C:\ opencv-3.4.0.-opencl \ bin \ Release \ * .dll => 的Myproj \构建\ BIN \发布\ *。DLL
如果可能,我想在一个Build / Release命令中执行此操作。
答案 0 :(得分:1)
您可以在构建后命令上复制文件。可以找到一个步骤教程here。
基本概念是您可以使用批处理文件命令,作为Visual Studio中的构建后步骤,基本上可以在构建时执行任何操作。
可以找到进一步的教程here
对于CMAKE
最简单的方法是遵循上面的建议,但不要将其放在VS中的后期构建选项中,只需添加custom command
答案 1 :(得分:0)
您可以尝试使用CPack
一次性处理多种配置。请参阅以下教程中的示例
https://cmake.org/cmake/help/latest/guide/tutorial/index.html#packaging-debug-and-release-step-12
默认情况下,CMake的模型是构建目录仅包含一个 单一配置,无论是Debug,Release,MinSizeRel还是 RelWithDebInfo。但是,可以将CPack设置为捆绑 多个构建目录并构建包含以下内容的包 同一项目的多个配置。
然后,对于每种配置,您将需要使用以下两种方法之一来复制所需的文件
configure_file
https://cmake.org/cmake/help/latest/command/configure_file.html
或
add_custom_command
https://cmake.org/cmake/help/latest/command/add_custom_command.html
这是reddit的一个例子
https://www.reddit.com/r/cmake/comments/gmewhu/copy_one_file_in_src_directory_to_build_directory/
# Copy <filename> to build directory
set(copy_source_dir "${CMAKE_SOURCE_DIR}/src/<path>")
set(copy_dest_dir "${CMAKE_BINARY_DIR}/Build/<path>/$<CONFIG>")
set(copy_file_name "<filename>")
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${copy_dest_dir}
)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${copy_source_dir}/${copy_file_name}" "${copy_dest_dir}/${copy_file_name}"
COMMENT "Copying ${copy_file_name} to build directory"
)