首页 > 解决方案 > Android 库中的 SDL2

问题描述

我目前正在尝试在 Android 库中添加 SDL2 库。

Android 项目仅使用 CMakeList.txt 文件(无 Android.mk)进行管理

我无法让它编译。这是一个基本的 C++ android gradle 项目,在 CMakeList.txt 我添加了以下行:

add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/AAA/third_party/SDL2")

但是我遇到了链接器错误,例如

fatal error: 'SDL2/SDL.h' file not found
#include <SDL2/SDL.h>
       ^~~~~~~~~~~~
1 error generated.

有人可以解释我如何将 SDL2 添加到现有的 CMakelist.txt 以用于 android 项目?

标签: androidc++cmakeandroid-ndksdl-2

解决方案


您还需要在 CMakeLists.txt 中设置包含

# per target include
target_include_directories(your_target public "${CMAKE_CURRENT_SOURCE_DIR}/AAA/third_party/")
# globally
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/AAA/third_party/")

pd:我省略了路径中的 SDL2,因为您似乎包含标题,就<SDL2/XXX.h>好像您想包含标题一样,直接<XXX.h>将 SDL2 添加到路径中,即:

target_include_directories(your_target public "${CMAKE_CURRENT_SOURCE_DIR}/AAA/third_party/SDL2")

推荐阅读