c++ - CMake 无法找到 SDL2_ttf,我尝试以与 SDL2 相同的方式链接它,并且两者都正确安装在 Ubuntu 18.04 上

标签 c++ cmake clion

我收到错误:

CMake Error at CMakeLists.txt:11 (find_package):
  By not providing "FindSDL2_ttf.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "SDL2_ttf",
  but CMake did not find one.

  Could not find a package configuration file provided by "SDL2_ttf" with any
  of the following names:

    SDL2_ttfConfig.cmake
    sdl2_ttf-config.cmake

  Add the installation prefix of "SDL2_ttf" to CMAKE_PREFIX_PATH or set
  "SDL2_ttf_DIR" to a directory containing one of the above files.  If
  "SDL2_ttf" provides a separate development package or SDK, be sure it has
  been installed.

这是我的 cmake 文件的样子:

cmake_minimum_required(VERSION 3.14)
project(Smithereens)

set(CMAKE_CXX_STANDARD 17)

add_executable(Smithereens main.cpp)

find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})

find_package(SDL2_ttf REQUIRED)
include_directories(${SDL2_ttf_INCLUDE_DIRS})

target_link_libraries(Smithereens ${SDL2_LIBRARIES} ${SDL2_ttf_LIBRARIES})

SDL2 和 SDL2_ttf 都安装在我的机器上,我确信我只是链接错误,学习 CMake 对我来说非常头疼。

最佳答案

这对我来说效果很好,Ubuntu 18.04。

INCLUDE(FindPkgConfig)
PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)
PKG_SEARCH_MODULE(SDL2TTF REQUIRED SDL2_ttf>=2.0.0)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(SOURCE_FILES main.cpp)

add_executable(${PROJECT_NAME} ${SOURCE_FILES})

target_include_directories(${PROJECT_NAME} PRIVATE
    include ${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIRS} ${SDL2TTF_INCLUDE_DIRS})

target_link_libraries(${PROJECT_NAME} PRIVATE
    ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES})

关于c++ - CMake 无法找到 SDL2_ttf,我尝试以与 SDL2 相同的方式链接它,并且两者都正确安装在 Ubuntu 18.04 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58107854/

相关文章:

C++ 程序在重新执行时加速

docker - 使用主机网络启动 Docker 容器,同时保持 SSH 进入容器的能力?

c - 为什么我无法运行 CLion 项目

c++ - 任何人都可以向我解释 RAII 的意义吗?

c++ - 来自 QFrame 的 Qt 气球窗口

c++ - 带有 QT5 "Qt5::QtCore"的现代 CMake 3 但未找到目标

compiler-errors - 如何在Linux Mint上正确编译Synergy?

c++ - std::map<int, int> 与 vector of vector

c++ - 成员变量驻留在哪个内存段?

cmake找不到依赖库