f

2016-05-10

Install GLFW 3.1.2 from source on Ubuntu 14.04

GLFWというOpenGLでGUIを簡単に作るためのC言語のライブラリが公開されており,興味を持ったのでUbuntu 14.04にソースからインストールしてみた。

公式サイトからファイルをダウンロードしてインストールする。インストール方法は以下の公式サイトを参照する。

GLFW: Compiling GLFW

基本的にはファイルを展開して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: Building applications

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でアプリを作る準備はできただろう。

0 件のコメント:

コメントを投稿