1. ホーム
  2. linux

[解決済み] GLFW 3をビルドしてインストールし、Linuxプロジェクトで使用する方法

2022-12-27 17:49:04

質問

GLFW3

昨晩、私は遅くまでLinux用のGLFW 3パッケージをソースからビルドしようとしていました。この作業は非常に時間がかかり、合計で約 3 時間かかりました。これは、私が CMake に慣れていないことと、GLFW に慣れていないことが原因です。

この投稿が、私が昨日経験した困難からあなたを救うことを願っています! 私は、短い書き込みを作成し、できればあなたの人生の数時間を節約するべきだと思いました...。

IRC チャンネル #glfw の "urraka", "b6" および "niklas" のおかげで、glfw バージョン 3.0.1 を動作させることが出来ました。

glfw3、特に CMake でのセットアップについて、ウェブ上に多くのドキュメントがないため、これは些細なプロセスではないことがわかりました (確かに、私は専門家ではありません)。

私はこれを質問と回答のセクションに分割するように尋ねられたので、私はそれを行い、回答部分は現在以下のとおりです。

あなたはGLFWのメンテナ、またはGLFWチームのメンバーですか?

もしGLFW3のメンテナがこれを見たら、私のメッセージは、あなたのウェブサイトに "Windows、Mac OS X、LinuxでのGLFW3のセットアップ"のセクションを追加してください! GLFWを使ったプログラムを書くのはとても簡単です。GLFWを使ったプログラムを書くのはとても簡単です。オンライン・ドキュメント が非常に充実しており、利用可能なすべてのクラスとモジュールにざっと目を通せば、 すぐにでも実行できます。テストプロジェクトの例では ここで も非常に優れています。私が見つけた2つの主な問題は、まず、私のシステムでGLFW3をどのようにセットアップするか、そして、GLFW3プロジェクトをどのように構築するかということでした。この 2 つは、おそらく専門家でない人にとっては十分に明確ではありません。

編集

今日(日付:2014-01-14)ちょっと見てみましたが、前回見たときからGLFWのウェブサイトが大きく変わったようで、GLFWのコンパイルやGLFWでプログラムを構築するセクションがあり、これは新しいと思います。

どのように解決するのですか?

2020年版の回答

2020年(7年後)ですが、この間にLinuxについてより多くのことを学びました。具体的には、Linux で sudo make install を実行するとパッケージ管理システムに干渉する可能性があるということです。(この場合 apt を使用します)。

もしこれが正しくないのであれば、コメントで訂正してください。

代替ソリューションの提案

この情報はGLFWのドキュメントから引用していますが、Linuxユーザーに関連する情報を拡張/簡略化しています。

  • ホームディレクトリに移動し、githubからglfwリポジトリをcloneします。
cd ~
git clone https://github.com/glfw/glfw.git
cd glfw

  • この時点でビルドディレクトリを作成し、こちらの説明書に従って( glfw ビルド手順 ) に従ってビルドディレクトリを作成することもできますが、私はそれを行いませんでした。以下のコマンドは2020年でも使えるようですが、glfwのオンライン説明書には明記されていません。
cmake -G "Unix Makefiles"

  • を実行する必要がある場合があります。 sudo apt-get build-dep glfw3 の前に(?) 私はこのコマンドと sudo apt install xorg-dev を説明書通りに実行しました。

  • 最後に実行する make

  • では、プロジェクトディレクトリで、次のようにしてください。(glfwライブラリを使用するプロジェクトに移動してください)

  • を作成します。 CMakeLists.txt 私の場合は次のようになります。

CMAKE_MINIMUM_REQUIRED(VERSION 3.7)
PROJECT(project)

SET(CMAKE_CXX_STANDARD 14)
SET(CMAKE_BUILD_TYPE DEBUG)

set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)

add_subdirectory(/home/<user>/glfw /home/<user>/glfw/src)


FIND_PACKAGE(OpenGL REQUIRED)

SET(SOURCE_FILES main.cpp)

ADD_EXECUTABLE(project ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(project glfw)
TARGET_LINK_LIBRARIES(project OpenGL::GL)

  • もしあなたがCMakeを好きでないなら、申し訳ありませんが、私の意見では、これはあなたのプロジェクトを素早く動作させる最も簡単な方法です。少なくとも基本的なレベルでは、CMake の使用を学ぶことをお勧めします。残念ながら、私は良い CMake チュートリアルを知りません。

  • 次に cmake . そして make である場合、プロジェクトはglfw3共有ライブラリに対してビルドおよびリンクされる必要があります。

  • ダイナミックリンクされたライブラリを作成する方法もあります。私はここで静的な方法を使用したと信じています。もし、私よりも詳しい方がいらっしゃいましたら、以下のコメント/この回答のセクションを追加してください。

  • これは他のシステムでも動作するはずです。そうでなければ、私に知らせてください。