Maison  >  Article  >  développement back-end  >  Comment puis-je inclure des en-têtes SDL2 dans un projet basé sur CMake ?

Comment puis-je inclure des en-têtes SDL2 dans un projet basé sur CMake ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 22:13:02679parcourir

How can I include SDL2 headers in a CMake-based project?

Inclure les en-têtes SDL2 dans les projets basés sur CMake

Cette question aborde le problème de l'inclusion des en-têtes SDL2 (#include "SDL.h") lors de la création d'un projet SDL2 dans CLion en utilisant CMake.

Solution

La solution fournie propose deux approches pour différents systèmes d'exploitation :

Linux

Pour Linux, utiliser une version récente de CMake (par exemple 3.7) est suffisant. La fonctionnalité find_package intégrée de CMake peut localiser et inclure les en-têtes et les bibliothèques SDL2 :

<code class="cmake">cmake_minimum_required(VERSION 3.7)
project(SDL2Test)

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

add_executable(SDL2Test Main.cpp)
target_link_libraries(SDL2Test ${SDL2_LIBRARIES})</code>

Windows

Pour Windows, suivez ces étapes :

  1. Téléchargez le package de développement SDL2.
  2. Extrayez-le dans un fichier choisi emplacement.
  3. Créez le fichier sdl-config.cmake dans le répertoire extrait avec le contenu suivant :
<code class="cmake">set(SDL2_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/include")

# Support both 32 and 64 bit builds
if (${CMAKE_SIZEOF_VOID_P} MATCHES 8)
  set(SDL2_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2main.lib")
else ()
  set(SDL2_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2main.lib")
endif ()

string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)</code>
  1. Dans l'application CMake-GUI, définissez le SDL2_DIR variable dans le répertoire SDL2 extrait.
  2. Reconfigurer CMake.

Après ces étapes, vous pouvez inclure les en-têtes SDL2 en utilisant #include "SDL.h".

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