SDL2 CMake项目ft2build.h引入失败及SDL_ttf安装故障排查
解决SDL2+SDL_ttf CMake项目编译错误的步骤
1. 编译SDL_ttf源码时找不到ft2build.h的解决方法
Debian11上freetype2的头文件默认存放在/usr/include/freetype2,编译SDL_ttf时需要显式指定这个路径:
- 若用autotools编译SDL_ttf(比如你下载的SDL2_ttf-2.20.0.tar.gz):
./configure CPPFLAGS="-I/usr/include/freetype2" make && sudo make install - 若用CMake编译SDL_ttf:
在SDL_ttf的CMakeLists.txt中添加:find_package(Freetype REQUIRED) include_directories(${FREETYPE_INCLUDE_DIRS})
2. 项目编译时找不到SDL_ttf.h的解决方法
不要手动复制SDL_ttf的源文件到项目,正确通过CMake引入已安装的库:
- 在你的项目CMakeLists.txt中,用标准的
find_package命令引入SDL2和SDL2_ttf:cmake_minimum_required(VERSION 3.10) project(Zokoban) find_package(SDL2 REQUIRED) find_package(SDL2_ttf REQUIRED) include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIRS}) add_executable(Zokoban src/renderer.cpp 其他源文件) target_link_libraries(Zokoban ${SDL2_LIBRARIES} ${SDL2_TTF_LIBRARIES}) - 如果
find_package无法识别SDL2_ttf,手动指定默认安装路径:set(SDL2_TTF_INCLUDE_DIR /usr/include/SDL2) set(SDL2_TTF_LIBRARY /usr/lib/x86_64-linux-gnu/libSDL2_ttf.so) - 安装SDL_ttf后执行
sudo ldconfig,更新系统库缓存
3. 验证安装是否正确
- 检查
SDL_ttf.h是否存在:ls /usr/include/SDL2/SDL_ttf.h - 检查SDL2_ttf库是否存在:
ls /usr/lib/x86_64-linux-gnu/libSDL2_ttf.so
内容的提问来源于stack exchange,提问作者Seim2k20
相关产品推荐
相关产品推荐

