> 백엔드 개발 > C++ > SDL2 및 SDL_image를 CMake와 통합하는 방법은 무엇입니까?

SDL2 및 SDL_image를 CMake와 통합하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-05 17:58:02
원래의
706명이 탐색했습니다.

How to Integrate SDL2 and SDL_image with CMake?

CMake를 활용하여 SDL2와 SDL_image 통합

이 글에서는 SDL2와 SDL_image를 활용하는 C 프로그램을 컴파일하는 문제를 다룹니다. CMake를 사용합니다. 철저한 조사 끝에 다음과 같은 최적화된 CMake 스크립트가 나타났습니다.

project(shooter-cmake2)

cmake_minimum_required(VERSION 2.8)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")

add_executable(${PROJECT_NAME} src/test.cpp)

INCLUDE(FindPkgConfig)

PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)

INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES})
로그인 후 복사

이 CMake 스크립트는 Ubuntu 시스템에서 필요한 라이브러리를 효과적으로 찾아서 제공된 예제 함수를 성공적으로 연결할 수 있도록 합니다.

#include "SDL.h"
#include "SDL_image.h"

SDL_Texture* loadTexture(const std::string &file, SDL_Renderer *ren){
    SDL_Texture *texture = IMG_LoadTexture(ren, file.c_str());
    texture != nullptr or die("LoadTexture");
    return texture;
}
로그인 후 복사

--debug-output 플래그를 사용하여 CMake를 실행하면 다음 출력이 생성됩니다.

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") 
Called from: [2]    /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake
            [1] $USER/stack-overflow/cmake-sdl2-image/CMakeLists.txt
-- checking for one of the modules 'sdl2'
Called from: [1]    $USER/stack-overflow/cmake-sdl2-image/CMakeLists.txt
-- checking for one of the modules 'SDL2_image>=2.0.0'
Called from: [1]    $USER/stack-overflow/cmake-sdl2-image/CMakeLists.txt
로그인 후 복사

해당 pkgconfigs를 추가로 조사한 결과 SDL2_image.pc에 Name: SDL2_image 줄이 포함되어 있는 것으로 나타났습니다. PKG_SEARCH_MODULE의 세 번째 매개변수입니다.

위 내용은 SDL2 및 SDL_image를 CMake와 통합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿