CMake와 함께 SDL2 사용: 잘못된 헤더 포함 문제 해결
CLion 및 CMake를 사용하여 SDL2를 프로젝트에 통합할 때 개발자는 포함하는 데 어려움을 겪을 수 있습니다. 헤더 경로 확인 실패로 인해 필요한 헤더. 이 문서의 목적은 이 문제를 해결하고 포괄적인 솔루션을 제공하는 것입니다.
제공된 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)
그러나 이 접근 방식은 지정된 경로가 정확하고 시스템의 헤더 검색 경로가 올바르게 구성되었다는 가정을 기반으로 합니다.
이 문제를 해결하려면 CMake에서 제공하는 find_package() 명령을 사용하는 것이 좋습니다. 이 명령은 자동으로 SDL2 라이브러리를 검색하고 SDL2_INCLUDE_DIRS 및 SDL2_LIBRARIES를 포함한 적절한 변수를 설정합니다.
최신 CMake 버전(예: 3.7 이상)을 사용하는 Linux 기반 시스템의 경우 이 프로세스는 간단합니다.
cmake_minimum_required(VERSION 3.7)
project(SDL2Test)
find_package(SDL2 REQUIRED)
Windows 시스템의 경우 추출된 SDL2 개발 패키지 디렉터리 내에 sdl-config.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)
CMake-GUI 애플리케이션 내에서 프로젝트를 구성하면 SDL2_DIR 변수가 나타납니다. dev 패키지에서 추출한 SDL2 디렉터리로 설정해야 합니다. 이 단계 후에 재구성된 프로젝트는 필요한 헤더와 라이브러리를 올바르게 찾아야 하며, 친숙한 구문을 사용하여 SDL2 헤더를 원활하게 포함할 수 있습니다:
#include
#include "SDL.h"
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3