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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-02 15:35:30298검색

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

CMake와 함께 SDL2 사용: 잘못된 헤더 포함 처리

CLion 및 CMake를 사용하는 프로젝트에 SDL2를 통합할 때 개발자는 포함하는 데 어려움을 겪을 수 있습니다. 헤더 경로 확인 실패로 인해 필요한 헤더. 이 문서의 목적은 이 문제를 해결하고 포괄적인 솔루션을 제공하는 것입니다.

제공된 CMakeLists.txt 파일에서 SDL2 포함 디렉터리 및 라이브러리의 경로는 명시적으로 설정됩니다.

<code class="cmake">set(SDL2_INCLUDE_DIR C:/SDL/SDL2-2.0.3/include)
set(SDL2_LIBRARY C:/SDL/SDL2-2.0.3/lib/x64)</code>

그러나 , 이 접근 방식은 지정된 경로가 정확하고 시스템의 헤더 검색 경로가 올바르게 구성되었다는 가정에 의존합니다.

이 문제를 해결하려면 CMake에서 제공하는 find_package() 명령을 사용하는 것이 좋습니다. 이 명령은 자동으로 SDL2 라이브러리를 검색하고 SDL2_INCLUDE_DIRS 및 SDL2_LIBRARIES를 포함한 적절한 변수를 설정합니다.

최신 CMake 버전(예: 3.7 이상)을 사용하는 Linux 기반 시스템의 경우 이 프로세스는 간단합니다.

<code class="cmake">cmake_minimum_required(VERSION 3.7)
project(SDL2Test)

find_package(SDL2 REQUIRED)</code>

Windows 시스템의 경우 추출된 SDL2 개발 패키지 디렉터리 내에 sdl-config.cmake 파일을 수동으로 생성해야 합니다. 다음은 파일 내용의 예입니다.

<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>

CMake-GUI 애플리케이션 내에서 프로젝트를 구성하면 SDL2_DIR 변수가 나타납니다. dev 패키지에서 추출한 SDL2 디렉터리로 설정해야 합니다. 이 단계 후에는 재구성된 프로젝트가 필요한 헤더와 라이브러리를 올바르게 찾아서 익숙한 구문을 사용하여 SDL2 헤더를 원활하게 포함할 수 있습니다.

<code class="c++">#include <iostream>
#include "SDL.h"</code>

위 내용은 CMake와 함께 SDL2를 사용할 때 잘못된 헤더 포함을 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.