Maison > développement back-end > C++ > 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
Libérer: 2024-11-02 22:13:02
original
782 Les gens l'ont consulté

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

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