Menggunakan CMake untuk Mengintegrasikan SDL2 dan SDL_image
Dalam artikel ini, kami akan menangani isu penyusunan program C yang menggunakan SDL2 dan SDL_image menggunakan CMake. Selepas penyiasatan menyeluruh, skrip CMake yang dioptimumkan berikut muncul:
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})
Skrip CMake ini secara berkesan mengesan perpustakaan yang diperlukan pada sistem Ubuntu, membolehkan pemautan berjaya bagi fungsi contoh yang disediakan:
#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; }
Setelah melaksanakan CMake dengan bendera --debug-output, output berikut dihasilkan:
-- 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
Penyiasatan lanjut ke atas pkgconfigs yang sepadan mendedahkan bahawa SDL2_image.pc mengandungi baris Nama: SDL2_image, yang sejajar dengan parameter ketiga PKG_SEARCH_MODULE.
Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan SDL2 dan SDL_image dengan CMake?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!