【发布时间】:2018-06-03 19:26:17
【问题描述】:
我正在尝试使用 CMake 将 SDL2 链接到我的可执行文件。
这是我的项目目录现在的样子。基本上,我从他们的网站上下载了SDL2 source code 并粘贴在projectRoot 下。
projectRoot/
SDL2/
include/
cmake/
...
CMakeLists.txt
SDL2Config.cmake
CMakeLists.txt
我尝试将 SDL2 添加为如下子目录 (projectRoot/CMakeLists.txt):
cmake_minimum_required (VERSION 2.8)
project (myProject)
# SDL
add_subdirectory (SDL2 EXCLUDE_FROM_ALL)
target_include_directories (SDL2 PUBLIC $<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>)
set (
SOURCE_FILES
src/game.cpp
src/main.cpp
src/sdlwrapper.cpp
)
add_executable (my_executable ${SOURCE_FILES})
target_include_directories (my_executable PRIVATE src)
target_link_libraries (my_executable SDL2)
虽然这适用于我的 linux 环境,但它无法链接我的 Windows 机器上的 dll 文件。
我认为如果我可以在 projectRoot 下的某个位置安装 SDL2 并使用 find_package 来查找它的目标会更容易,这样我就可以将我的可执行文件链接到它的库。
- 是否可以在配置期间安装外部 CMake 项目?
- 我应该如何找到外部项目的目标?
【问题讨论】: