«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как исправить неверный заголовок при использовании SDL2 с CMake?

Как исправить неверный заголовок при использовании SDL2 с CMake?

Опубликовано 10 ноября 2024 г.
Просматривать:503

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

Использование SDL2 с CMake: устранение включений недопустимого заголовка

При интеграции SDL2 в проект с использованием CLion и CMake разработчики могут столкнуться с трудностями при включении необходимые заголовки из-за неудачного разрешения пути заголовка. Целью этой статьи является рассмотрение этой проблемы и предоставление комплексного решения.

В предоставленном файле CMakeLists.txt явно задан путь к каталогу включения и библиотекам SDL2:

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

Однако этот подход основан на предположении, что указанные пути верны и что пути поиска в заголовке системы настроены правильно.

Чтобы решить эту проблему, мы рекомендуем использовать команду find_package(), предоставляемую CMake. Эта команда автоматически выполнит поиск библиотеки SDL2 и установит соответствующие переменные, включая SDL2_INCLUDE_DIRS и SDL2_LIBRARIES.

Для систем на базе Linux с последними версиями CMake (например, 3.7 или новее) этот процесс должен быть простым:

cmake_minimum_required(VERSION 3.7)
project(SDL2Test)

find_package(SDL2 REQUIRED)

Для систем Windows необходимо вручную создать файл sdl-config.cmake в извлеченном каталоге пакета разработки SDL2. Вот пример содержимого файла:

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)

После настройки проекта в приложении CMake-GUI появится переменная SDL2_DIR. Он должен быть установлен в каталог SDL2, извлеченный из пакета dev. После этого шага переконфигурированный проект должен правильно найти необходимые заголовки и библиотеки, что позволит беспрепятственно включать заголовки SDL2 с использованием знакомого синтаксиса:

#include 
#include "SDL.h"
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3