【发布时间】:2017-04-15 01:20:07
【问题描述】:
通过这个答案:
How to copy DLL files into the same folder as the executable using CMake?
我正在尝试将 SDL2.dll 复制到存储我的 .exe 的位置。但是,这对我不起作用。这是我的 CMakeLists.txt 文件,其中 add_custom_command 理论上负责将 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})
这是我项目中唯一的 CMakelists.txt 文件,因此我没有更改我的 exe 的存储位置(默认情况下,它似乎位于“调试”下的构建文件夹中)。我还是 cmake 的新手,所以我想知道是否有人可以指导我朝着错误的方向前进。谢谢!
【问题讨论】: