【问题标题】:cannot get .dll file copied to executable folder with CMake无法使用 CMake 将 .dll 文件复制到可执行文件夹
【发布时间】: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 的新手,所以我想知道是否有人可以指导我朝着错误的方向前进。谢谢!

【问题讨论】:

    标签: dll cmake


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多