ホームページ >バックエンド開発 >C++ >CMake で SDL2 および SDL_image を使用する場合の未定義参照エラーを解決する方法は?

CMake で SDL2 および SDL_image を使用する場合の未定義参照エラーを解決する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-05 19:46:02830ブラウズ

How to Solve Undefined Reference Error When Using SDL2 and SDL_image with CMake?

CMake で SDL2 および SDL_image を使用する方法 (解決されたエラー)

このガイドでは、直面している問題の解決策を提供しますCMake で SDL2 と SDL_image を使用しようとしたとき。

元の問題:

CMake で SDL2 と SDL_image を使用して C プログラムをコンパイルしようとすると、IMG_LoadTexture への未定義の参照が発生します。

改善された解決策:

この問題に対処するには、CMakeLists.txt を次のように変更できます:

<code class="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})</code>

説明:

  • 適切なシステム ライブラリを見つけて使用するには、FindPkgConfig を使用します。
  • PKG_SEARCH_MODULE は、SDL2 および SDL2_image を検索し、それらのインクルード パスとライブラリを構成するために使用されます。
  • /usr/lib/x86_64-linux-gnu/pkgconfig/SDL2_image.pc の Name 値が、このライブラリの 3 番目のパラメータと PKG_SEARCH_MODULE に一致していることに注意してください。

これらの変更の実装リンクの問題が解決され、プログラムが SDL2 と SDL_image を正常に使用できるようになります。

以上がCMake で SDL2 および SDL_image を使用する場合の未定義参照エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。