ホームページ > バックエンド開発 > C++ > SDL2 および SDL_image を CMake と統合するにはどうすればよいですか?

SDL2 および SDL_image を CMake と統合するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-05 17:58:02
オリジナル
705 人が閲覧しました

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
ログイン後にコピー

対応する pkgconfig をさらに調査したところ、SDL2_image.pc に Name: SDL2_image という行が含まれていることが判明しました。 PKG_SEARCH_MODULE の 3 番目のパラメータ。

以上がSDL2 および SDL_image を CMake と統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート