ぷろみん

プログラミング的な内容を扱ってます

glewとglfw環境の構築

私の環境はwindows上のmsys2-mingwです。この構成の場合のglfwのlinux向けライブラリの作成方法は分かりませんでした。
存在しないコマンドは適宜pacman -Sで入れてください。

失敗例(msys2-mingw)

まず、glewを導入します。

$git clone https://github.com/nigels-com/glew.git glew
$cd glew

# system環境変数に合わせたMakefileを実行する。mingwを選択
$ls config
config.guess         Makefile.darwin-universal  Makefile.haiku        Makefile.linux-mingw32    Makefile.nacl-64      version
Makefile.cygming     Makefile.darwin-x86_64     Makefile.irix         Makefile.linux-mingw64    Makefile.netbsd
Makefile.cygwin      Makefile.fedora-mingw32    Makefile.kfreebsd     Makefile.linux-mingw-w64  Makefile.openbsd
Makefile.darwin      Makefile.freebsd           Makefile.linux        Makefile.mingw            Makefile.solaris
Makefile.darwin-ppc  Makefile.gnu               Makefile.linux-clang  Makefile.nacl-32          Makefile.solaris-gcc

# コンパイル
$env SYSTEM=mingw make

# 確認
$ls lib
glew32.dll  glew32mx.dll  libglew32.a  libglew32.dll.a  libglew32mx.a  libglew32mx.dll.a

コンパイルできたので、リンクできるようにします。

$pwd
/d/work/glew-1.13.0

# パッケージ作ったり何らかの方法でバージョン管理した方が良いような気がしましたが、やり方が分かりませんでした
$cp -r include/GL /usr/include
$cp lib/* /usr/lib

次はglfwを導入します。

$git clone https://github.com/glfw/glfw
$cd glfw
$cmake .
-- Building for: Visual Studio 14 2015
# VS入れてたせいかもしれませんが、勝手にVS向けのプロジェクトを吐いてます。
# 何かの環境変数を読んでいるみたいですね。

# このままだと、前回作成したプロジェクトのキャッシュが残っているので消します
$rm CMakeCache.txt

# 指定可能なターゲット環境はcmake -hで確認できます
$cmake -h
MSYS Makefiles               = Generates MSYS makefiles.

#-Gオプションでターゲット環境指定
$cmake -G "MinGW Makefiles"
$cmake -G "MSYS Makefiles"

# 以下のエラーの解決方法が分からず諦め
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
RT_LIBRARY (ADVANCED)
    linked by target "particles" in directory D:/git/glfw/examples
    linked by target "threads" in directory D:/git/glfw/tests
    linked by target "empty" in directory D:/git/glfw/tests

ビルドは上手くいった(virtual box上のubuntu)

# glewのコンパイル
$sudo apt-get install glew-utils
$git clone https://github.com/nigels-com/glew.git glew
$cd glew
$sudo cp -r include/GL /usr/include
$sudo cp lib/*.a /usr/lib

# glfwのコンパイル
$git clone https://github.com/glfw/glfw

# コンパイルに必要なライブラリを追加
$sudo apt-get build-dep glfw
# 足りなくてエラーが出た分を追加
$sudo apt-get install libxinerama-dev
$sudo apt-get install libxcursor-dev

$cd glfw
$cmake .
$make

# リンク
$sudo cp -r include/GLFW /usr/include
$sudo apt-get install libglfw3
$sudo apt-get install libglfw3-dev

ここまでやって、結局目的のコードをコンパイルできませんでした。無念。