それほど多くの -l
は必要ないことに注意してください BUILD_SHARED_LIBS
で glfw をインストールした場合 オプション。 (このオプションを有効にするには、ccmake
を実行します。
こちら sudo make install
/usr/local/lib/libglfw.so
に共有ライブラリをインストールします .次に、サンプル ファイルを次のように簡単にコンパイルできます:
g++ main.cpp -L /usr/local/lib/ -lglfw
次に、プログラムを実行する前に共有ライブラリの検索パスに /usr/local/lib/ を追加することを忘れないでください。これは以下を使用して実行できます:
export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}
そして、それを ~/.bashrc
に入れることができます 常に入力する必要はありません。
ステップ 1:CMAKE を使用してシステムに GLFW 3 をインストールする
このインストールでは、KUbuntu 13.04、64 ビットを使用しました。
最初のステップは、おそらくこのリンクを使用して、www.glfw.org から最新バージョンをダウンロードすることです (将来のバージョンも同様の方法で動作すると仮定します)。
次のステップは、アーカイブを抽出し、ターミナルを開くことです。 cd
glfw-3.X.X ディレクトリに移動し、 cmake -G "Unix Makefiles"
を実行します 昇格した権限が必要な場合があり、最初にビルドの依存関係をインストールする必要がある場合もあります .これを行うには、sudo apt-get build-dep glfw
を試してください または sudo apt-get build-dep glfw3
または 手動で行う 、 sudo apt-get install cmake xorg-dev libglu1-mesa-dev
を使用したように ... pthread ライブラリなど、他にも必要なライブラリがあるかもしれません...どうやら私はそれらを既に持っていたようです。 (以下の g++ リンカー ステージに指定された -l オプションを参照してください。)
make
と入力できるようになりました そして make install
、おそらく sudo
する必要があります
わかりました。最後の 3 つの CMake ステージで詳細な出力が得られ、何がビルドされたか、またはどこに配置されたかがわかります。 (/usr/include
で 、例)
ステップ 2:テスト プログラムを作成してコンパイルする
次のステップは、vim ("what?! vim?!" と言う) または好みの IDE/テキスト エディターを起動することです... 私は KUbuntu 13.04 を使用しているため、vim を使用せず、Kate を使用しました...いずれにせよ、ここ (ページの下部) からテスト プログラムをダウンロードまたはコピーし、保存して終了します。
g++ -std=c++11 -c main.cpp
を使用してコンパイルします - c++11 が必要かどうかわからない しかし、私は nullptr
を使用しました だから、私はそれが必要でした... gcc をバージョン 4.7 または次のバージョン 4.8 にアップグレードする必要があるかもしれません... 詳細はこちら。
手でプログラムを入力したり、「巧妙すぎる」ことを試みて何かがうまくいかなかった場合は、エラーを修正してください...そして、このモンスターを使用してリンクしてください! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
ご覧のとおり、「ビルド依存関係のインストール」の部分で、GL、GLU、X11 Xxf86vm (それが何であれ) Xrandr posix-thread および Xi (それが何であれ) development私> ライブラリもインストールされています。グラフィックドライバーも更新するかもしれません。GLFW 3 には OpenGL バージョン 3 以降が必要かもしれません。おそらく誰かがそれを確認できますか?リンカー オプション -ldl -lXinerama -lXcursor
を追加する必要がある場合もあります。 dlclose
への未定義の参照を取得している場合に正しく動作させるため (@user2255242 のクレジット)
そして、はい、私は本当に多くの -l
が必要でした
ステップ 3:これで終わりです。よい一日を!
願わくば、この情報が正しく、すべてがうまくいき、GLFW テスト プログラムの作成を楽しんでいただければ幸いです。また、このガイドが、今日のように苦労していた将来の何人かの人々を助けたこと、または助けることになることを願っています。 昨日!
ちなみにタグはすべて、存在しなかった答えを求めてstackoverflowで検索したものです。 (今まで。) もしあなたが私と同じような立場にいたなら、それらがあなたが検索したものであることを願っています.
著者メモ:
これは良い考えではないかもしれません。この方法 (sudo make install を使用) は、システムに有害な場合があります。 (Debian を壊さないでください)
理想的には、私または他の誰かが、lib ファイルなどをシステムのデフォルト ディレクトリにインストールするだけでなく、apt
などのパッケージ マネージャで管理する必要があるソリューションを提案する必要があります。 、そうすることで競合が発生し、パッケージ管理システムが壊れる可能性があります。
別の解決策については、新しい「2020 年の回答」を参照してください。
私はこの方法で解決しました
pkg-config ファイルには、ライブラリを使用するために必要なすべてのコンパイル時およびリンク時のフラグと依存関係が記述されています。
pkg-config --static --libs glfw3
-L/usr/local/lib -lglfw3 -lrt -lXrandr -lXinerama -lXi -lXcursor -lGL -lm -ldl -lXrender -ldrm -lXdamage -lX11-xcb -lxcb-glx -lxcb-dri2 -lxcb-dri3 -lxcb-present -lxcb-sync -lxshmfence -lXxf86vm -lXfixes -lXext -lX11 -lpthread -lxcb -lXau -lXdmcp
これらすべてのライブラリが実際にコンパイルに必要かどうかはわかりませんが、私にとっては機能します...