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