无法使用CMake将.dll文件复制到可执行文件夹

无法使用CMake将.dll文件复制到可执行文件夹,dll,cmake,Dll,Cmake,通过这个答案: 我正在尝试将SDL2.dll复制到存储.exe的位置。然而,这对我不起作用。这是我的CMakeLists.txt文件,带有add_custom_命令,理论上,该命令负责将dll复制到目标exe目录: cmake_minimum_required(VERSION 2.8.11) project(Another) set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) add_executable(Test "${CMA

通过这个答案:

我正在尝试将SDL2.dll复制到存储.exe的位置。然而,这对我不起作用。这是我的CMakeLists.txt文件,带有add_custom_命令,理论上,该命令负责将dll复制到目标exe目录:

cmake_minimum_required(VERSION 2.8.11)

project(Another)
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

add_executable(Test "${CMAKE_SOURCE_DIR}/SourCe/MAin.cpp")

find_path(SDL2_INCLUDE_DIR SDL.h HINTS "${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/Include/")
find_library(SDL2_LIBRARY_DIR SDL2 HINTS "${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/Lib/x86")
find_library(SDL2MAIN_LIBRARY_DIR SDL2main HINTS "${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/Lib/x86")

add_custom_command(TARGET Test POST_BUILD
     COMMAND ${CMAKE_COMMAND} -E copy_directory
         "${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/lib/x86/SDL2.dll"
         $<TARGET_FILE_DIR:Test>)

include_directories(${SDL2_INCLUDE_DIR})
target_link_libraries(Test ${SDL2_LIBRARY_DIR})
target_link_libraries(Test ${SDL2MAIN_LIBRARY_DIR})
cmake_最低要求(版本2.8.11)
项目(另一个)
集合(CMAKE_运行时_输出_目录${CMAKE_二进制_目录})
添加可执行文件(测试“${CMAKE_SOURCE_DIR}/SOURCE/MAin.cpp”)
find_path(SDL2_INCLUDE_DIR SDL.h提示“${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/INCLUDE/”)
find_library(SDL2_library_DIR SDL2提示“${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/Lib/x86”)
find_library(SDL2MAIN_library_DIR SDL2MAIN提示“${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/Lib/x86”)
添加自定义命令(目标测试后生成)
COMMAND${CMAKE_COMMAND}-E copy_目录
“${CMAKE_SOURCE_DIR}/ThirdParty/SDL2/lib/x86/SDL2.dll”
$)
include_目录(${SDL2_include_DIR})
目标链接库(Test${SDL2\u LIBRARY\u DIR})
目标链接库(测试${SDL2MAIN\u LIBRARY\u DIR})

这是我的项目中唯一的CMakelists.txt文件,因此我没有更改exe的存储位置(默认情况下,exe似乎位于“调试”下的build文件夹中)。我对cmake还是个新手,所以我想知道是否有人能指引我的错误方向。谢谢

我发现了这个问题。我要查找的命令是add_custom_command()函数中的“copy_if_different”,而不是“copy_directory”