Maison  >  Article  >  développement back-end  >  Comment intégrer SDL2 et SDL_image avec CMake ?

Comment intégrer SDL2 et SDL_image avec CMake ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-05 17:58:02608parcourir

How to Integrate SDL2 and SDL_image with CMake?

Utiliser CMake pour intégrer SDL2 et SDL_image

Dans cet article, nous aborderons la question de la compilation d'un programme C qui utilise SDL2 et SDL_image en utilisant CMake. Après une enquête approfondie, le script CMake optimisé suivant a émergé :

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})

Ce script CMake localise efficacement les bibliothèques requises sur les systèmes Ubuntu, permettant ainsi la liaison réussie de l'exemple de fonction fourni :

#include "SDL.h"
#include "SDL_image.h"

SDL_Texture* loadTexture(const std::string &file, SDL_Renderer *ren){
    SDL_Texture *texture = IMG_LoadTexture(ren, file.c_str());
    texture != nullptr or die("LoadTexture");
    return texture;
}

Lors de l'exécution de CMake avec l'indicateur --debug-output, la sortie suivante est générée :

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") 
Called from: [2]    /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake
            [1] $USER/stack-overflow/cmake-sdl2-image/CMakeLists.txt
-- checking for one of the modules 'sdl2'
Called from: [1]    $USER/stack-overflow/cmake-sdl2-image/CMakeLists.txt
-- checking for one of the modules 'SDL2_image>=2.0.0'
Called from: [1]    $USER/stack-overflow/cmake-sdl2-image/CMakeLists.txt

Une enquête plus approfondie sur les pkgconfigs correspondants a révélé que SDL2_image.pc contient la ligne Name : SDL2_image, qui s'aligne sur le troisième paramètre de PKG_SEARCH_MODULE.

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:
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