"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > CMake와 함께 SDL2를 사용할 때 잘못된 헤더 포함을 수정하는 방법은 무엇입니까?

CMake와 함께 SDL2를 사용할 때 잘못된 헤더 포함을 수정하는 방법은 무엇입니까?

2024년 11월 10일에 게시됨
검색:744

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

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