Maison > développement back-end > C++ > Comment résoudre l'erreur de référence non définie lors de l'utilisation de SDL2 et SDL_image avec CMake ?

Comment résoudre l'erreur de référence non définie lors de l'utilisation de SDL2 et SDL_image avec CMake ?

Susan Sarandon
Libérer: 2024-11-05 19:46:02
original
911 Les gens l'ont consulté

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

Comment utiliser SDL2 et SDL_image avec CMake (erreurs résolues)

Dans ce guide, nous fournirons une solution au problème rencontré lorsque vous essayez d'utiliser SDL2 et SDL_image avec CMake.

Problème d'origine :

Lors de la tentative de compilation d'un programme C à l'aide de SDL2 et SDL_image avec CMake, une référence non définie à IMG_LoadTexture a été rencontré.

Solution améliorée :

Pour résoudre ce problème, nous pouvons modifier le fichier CMakeLists.txt comme suit :

<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>
Copier après la connexion

Explication :

  • Nous utilisons FindPkgConfig pour localiser et utiliser les bibliothèques système appropriées.
  • PKG_SEARCH_MODULE est utilisé pour rechercher SDL2 et SDL2_image et configurer leurs chemins d'inclusion et leurs bibliothèques.
  • Remarquez que la valeur Name dans /usr/lib/x86_64-linux-gnu/pkgconfig/SDL2_image.pc correspond au troisième paramètre de PKG_SEARCH_MODULE pour cette bibliothèque.

Mise en œuvre de ces modifications devrait résoudre le problème de liaison et permettre au programme d'utiliser SDL2 et SDL_image avec succès.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal