CMake で SDL2 を使用するときに無効なヘッダー インクルードを修正する方法は?

Mary-Kate Olsen
リリース: 2024-11-02 15:35:30
オリジナル
323 人が閲覧しました

How to Fix Invalid Header Includes When Using SDL2 with CMake?

CMake での SDL2 の使用: 無効なヘッダー インクルードへの対処

CLion と CMake を使用して SDL2 をプロジェクトに統合する場合、開発者はインクルードで問題が発生する可能性があります。ヘッダー パスの解決に失敗したため、必要なヘッダーが失われています。この記事は、この問題に対処し、包括的な解決策を提供することを目的としています。

提供された CMakeLists.txt ファイルでは、SDL2 インクルード ディレクトリとライブラリへのパスが明示的に設定されています。

<code class="cmake">set(SDL2_INCLUDE_DIR C:/SDL/SDL2-2.0.3/include)
set(SDL2_LIBRARY C:/SDL/SDL2-2.0.3/lib/x64)</code>
ログイン後にコピー

ただしこのアプローチは、指定されたパスが正しく、システムのヘッダー検索パスが適切に構成されているという前提に基づいています。

この問題を解決するには、CMake が提供する find_package() コマンドを使用することをお勧めします。このコマンドは、SDL2 ライブラリを自動的に検索し、SDL2_INCLUDE_DIRS や SDL2_LIBRARIES などの適切な変数を設定します。

最新の CMake バージョン (例: 3.7 以降) を備えた Linux ベースのシステムの場合、このプロセスは簡単です。

<code class="cmake">cmake_minimum_required(VERSION 3.7)
project(SDL2Test)

find_package(SDL2 REQUIRED)</code>
ログイン後にコピー

Windows システムの場合、抽出した SDL2 開発パッケージ ディレクトリ内に sdl-config.cmake ファイルを手動で作成する必要があります。ファイルの内容の例を次に示します。

<code class="cmake">set(SDL2_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/include")

# Support both 32 and 64 bit builds
if (${CMAKE_SIZEOF_VOID_P} MATCHES 8)
  set(SDL2_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2main.lib")
else ()
  set(SDL2_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2main.lib")
endif ()

string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)</code>
ログイン後にコピー

CMake-GUI アプリケーション内でプロジェクトを構成すると、SDL2_DIR 変数が表示されます。これは、dev パッケージから抽出された SDL2 ディレクトリに設定する必要があります。このステップの後、再構成されたプロジェクトは必要なヘッダーとライブラリを正しく見つけ、使い慣れた構文

<code class="c++">#include <iostream>
#include "SDL.h"</code>
ログイン後にコピー
を使用して SDL2 ヘッダーをシームレスに組み込むことができるようになります。

以上がCMake で SDL2 を使用するときに無効なヘッダー インクルードを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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