Install GLFW 3.1.2 from source on Ubuntu 14.04
GLFWというOpenGLでGUIを簡単に作るためのC言語のライブラリが公開されており,興味を持ったのでUbuntu 14.04にソースからインストールしてみた。
公式サイトからファイルをダウンロードしてインストールする。インストール方法は以下の公式サイトを参照する。
基本的にはファイルを展開してcmake
を実行するだけだ。標準では/usr/local/
にインストールされてしまう。管理者権限は使わずに,stow
で管理したいので,cmake
の実行時にインストール先を指定した。
VER=3.1.2
cd ~/local/src
wget -nc https://github.com/glfw/glfw/releases/download/$VER/glfw-$VER.zip
unzip glfw-$VER.zip
cd glfw-$VER
mkdir glfw-build
cd glfw-build
cmake ../ -DCMAKE_INSTALL_PREFIX:PATH=$HOME/local/stow/glfw-$VER
make install
cd ~/local/stow/
stow glfw-$VER
思っていた以上に簡単にインストールできた。
なお,stow
でインストールするにあたって,~/.bashrc
などで以下のように各種PATHを設定している。GLFWではpkg-config
を使うので,忘れずにPKG_CONFIG_PATHを設定しておく。
### local install path
LOCAL="${HOME}/local"
export PATH="${LOCAL}/bin:$PATH"
export LD_LIBRARY_PATH="${LOCAL}/lib:$LD_LIBRARY_PATH"
export CPATH="${LOCAL}/include:$CPATH"
export MANPATH="${LOCAL}/man:${LOCAL}/share/man:$MANPATH"
export INFOPATH="${LOCAL}/info:${LOCAL}/share/info:$INFOPATH"
export PKG_CONFIG_PATH="${LOCAL}/lib/pkgconfig:${PKG_CONFIG_PATH}"
早速サンプルプログラムをビルドしてみる。
サンプルは以下に示す公式サイトのものを使用する。
// \file example.c
#include <GLFW/glfw3.h>
int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
GLFWのプログラムのビルド手順は以下を参考にする。
GLFWではpkg-config
を使って必要なライブラリをリンクする。以下のようにpkg-config
の実行結果をコンパイル時の引数に渡してやる。
cc -o example.{exe,c} $(pkg-config --cflags --static --libs glfw3)
不要かなと思っていたのだけど,なぜか--static
がないとビルドできなかった。ビルドできたら以下のコマンドで起動してみる。
./example.exe
これで以下の真っ黒なウィンドウが表示される。なお,ファイラーからダブルクリックでexample.exe
は起動できないようだ。PATHを通したりアプリと同じ場所にlibglfw3.a
を配置してもダメだった。cmakeでビルドしないとダメなのかもしれない。cmakeは使い方をよく知らないのでまた勉強しよう。
Windows 10では,MSYS2のpacmanからインストールしたらうまくいったのを確認できた。MSYS2でGLFWをソースからインストールしようとcmake
を実行するとWindowsのビルド環境を認識してしまいうまくいかなかった。
pacman -S --noconfirm mingw-w64-x86_64-glfw
ビルドコマンドは先ほど掲載したUbuntu 14.04でのものと同じでうまくいった。
Windowsでは/mingw64/bin/glfw3.dll
をアプリと同じディレクトリに入れておけばExplorerからも起動できた。ただし,起動したら一瞬で閉じられてしまった。
ひとまずこれでGLFWでアプリを作る準備はできただろう。