"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo arreglar las inclusiones de encabezado no válidas al usar SDL2 con CMake?

¿Cómo arreglar las inclusiones de encabezado no válidas al usar SDL2 con CMake?

Publicado el 2024-11-10
Navegar:992

How to Fix Invalid Header Includes When Using SDL2 with CMake?

Uso de SDL2 con CMake: cómo abordar las inclusiones de encabezado no válidas

Al integrar SDL2 en un proyecto que utiliza CLion y CMake, los desarrolladores pueden encontrar dificultades para incluir encabezados necesarios debido a una resolución fallida de la ruta del encabezado. Este artículo tiene como objetivo abordar este problema y proporcionar una solución integral.

En el archivo CMakeLists.txt proporcionado, la ruta al directorio de inclusión y las bibliotecas de SDL2 se establece explícitamente:

set(SDL2_INCLUDE_DIR C:/SDL/SDL2-2.0.3/include)
set(SDL2_LIBRARY C:/SDL/SDL2-2.0.3/lib/x64)

Sin embargo, este enfoque se basa en la suposición de que las rutas especificadas son correctas y que las rutas de búsqueda de encabezados del sistema están configuradas correctamente.

Para resolver este problema, recomendamos utilizar el comando find_package() proporcionado por CMake. Este comando buscará automáticamente la biblioteca SDL2 y establecerá las variables apropiadas, incluidas SDL2_INCLUDE_DIRS y SDL2_LIBRARIES.

Para sistemas basados ​​en Linux con versiones recientes de CMake (por ejemplo, 3.7 o posterior), este proceso debería ser sencillo:

cmake_minimum_required(VERSION 3.7)
project(SDL2Test)

find_package(SDL2 REQUIRED)

Para sistemas Windows, es necesario crear manualmente un archivo sdl-config.cmake dentro del directorio del paquete de desarrollo SDL2 extraído. A continuación se muestra un ejemplo del contenido del archivo:

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)

Al configurar el proyecto dentro de la aplicación CMake-GUI, aparecerá la variable SDL2_DIR. Debe configurarse en el directorio SDL2 extraído del paquete de desarrollo. Después de este paso, el proyecto reconfigurado debería encontrar correctamente los encabezados y bibliotecas necesarios, permitiendo la inclusión perfecta de encabezados SDL2 utilizando la sintaxis familiar:

#include 
#include "SDL.h"
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3