[解決済み] GLFW 3をビルドしてインストールし、Linuxプロジェクトで使用する方法
質問
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共有ライブラリに対してビルドおよびリンクされる必要があります。 -
ダイナミックリンクされたライブラリを作成する方法もあります。私はここで静的な方法を使用したと信じています。もし、私よりも詳しい方がいらっしゃいましたら、以下のコメント/この回答のセクションを追加してください。
-
これは他のシステムでも動作するはずです。そうでなければ、私に知らせてください。
関連
-
Kali Linuxのマウスを左利き用に設定する方法は?Linuxマウス左利き操作選択方法
-
エラーの解決方法 お客様のバージョンは /bin/bash: java: コマンドが見つかりませんでした。
-
リクエスト・エンティティが大きすぎる問題の解決策
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] Linuxでファイルをシンボリックリンクするには?[クローズド]
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
deepin linuxでroot権限に切り替えるには?Deepinでrootに切り替えるためのヒント
-
Linux 5.10.10 正式版リリース:NULLポインタの不具合修正など。
-
deepin20ターミナルでサーバーをリモート管理する方法
-
Linux Mintで入力メソッドを削除する方法は?Linux Mintで冗長な入力メソッドを削除するためのヒント
-
deepin20のソフトをアンインストールする方法を教えてください。deepinのアプリケーションをアンインストールする2つの方法
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み] ビーコン待ちでハングアップしたリーバー
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] POSIX」の意味を教えてください。