Cmake 错误:找不到 Freetype(缺少:FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)

问题描述 投票:0回答:1

我正在使用 SDLSDL_imageSDL_ttf(它们作为子模块添加)用于小型 2D 游戏。当我使用 cmake 构建项目时,它给了我错误 - I am getting these errors

但是当我从项目中删除 sdl_ttf 时,它就可以正确构建了

CMakeLists.txt

cmake_minimum_required(VERSION 3.21.2)

project(LunarLander VERSION 0.1.0)


add_subdirectory(vendor/SDL)
add_subdirectory(vendor/SDL_image)
add_subdirectory(vendor/SDL_ttf)


file(GLOB LL_SOURCE_FILES src/*.cpp)
file(GLOB LL_HEADER_FILES include/*.h)

add_executable(LunarLander ${LL_SOURCE_FILES} ${LL_HEADER_FILES})

set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT LunarLander)

target_include_directories(LunarLander PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/
                                         ${CMAKE_CURRENT_SOURCE_DIR}/vendor/SDL/include/
                                         ${CMAKE_CURRENT_SOURCE_DIR}/vendor/SDL_image/
                     ${CMAKE_CURRENT_SOURCE_DIR}/vendor/SDL_ttf/)

target_link_libraries(LunarLander SDL2 SDL2main SDL2_image SDL2_ttf)

该项目位于 github 上 - LunarLander-Clone

我做错了什么吗?

c++ cmake sdl-2 freetype sdl-ttf
1个回答
0
投票

您的问题: 找不到 Freetype(缺少:FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)

解决方案: 打开 SDL_ttf CMakeLists.txt 文件并找到该行 设置(vendored_default FALSE) 并将其更改为 TRUE

默认情况下,ttf 库不再随 freetype 一起提供,必须手动将其添加到外部文件夹中并被告知要构建。开发人员似乎认为您应该使用系统范围的包管理器来获取 freetype 的预构建版本。

© www.soinside.com 2019 - 2024. All rights reserved.