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
ここまでやって、結局目的のコードをコンパイルできませんでした。無念。