首页 >后端开发 >C++ >在 CMake 中使用 SDL2 和 SDL_image 时如何解决未定义的引用错误?

在 CMake 中使用 SDL2 和 SDL_image 时如何解决未定义的引用错误?

Susan Sarandon
Susan Sarandon原创
2024-11-05 19:46:02827浏览

How to Solve Undefined Reference Error When Using SDL2 and SDL_image with CMake?

如何在 CMake 中使用 SDL2 和 SDL_image(已解决的错误)

在本指南中,我们将为所面临的问题提供解决方案当尝试使用 SDL2 和 SDL_image 与 CMake 时。

原始问题:

当尝试使用 SDL2 和 SDL_image 与 CMake 编译 C 程序时,对 IMG_LoadTexture 的未定义引用

改进的解决方案:

要解决此问题,我们可以修改 CMakeLists.txt,如下所示:

<code class="cmake">project(shooter-cmake2)

cmake_minimum_required(VERSION 2.8)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")

add_executable(${PROJECT_NAME} src/test.cpp)

INCLUDE(FindPkgConfig)

PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)

INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES})</code>

说明:

  • 我们使用 FindPkgConfig 来查找和使用适当的系统库。
  • PKG_SEARCH_MODULE 用于搜索 SDL2 和 SDL2_image 并配置它们的包含路径和库。
  • 请注意 /usr/lib/x86_64-linux-gnu/pkgconfig/SDL2_image.pc 中的 Name 值与此库的 PKG_SEARCH_MODULE 的第三个参数相匹配。

实现这些更改应该可以解决链接问题并允许程序成功使用 SDL2 和 SDL_image。

以上是在 CMake 中使用 SDL2 和 SDL_image 时如何解决未定义的引用错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn