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 중국어 웹사이트의 기타 관련 기사를 참조하세요!