gcc or mingw32-gcc + OMake + glfw

プログラマブルシェーダでのOpenGLをいろいろやりたくてフレームワークにGLFW、
ビルドにOMake(gcc)を使ってあれこれしようとしてます。


Windows上のVC++で動作確認までできたコードで試していたんですがなかなかうまく言っていません。

前々から興味のあったOMakeでビルドしようと思い、
有志の方の翻訳したサイトで複数ファイル + 複数ディレクトリのチュートリアルを済ませ、
自作ライブラリ + GLFW + プロジェクトのソースで検証。

・いきなりUbuntu + OMake + 自作ライブラリ
さっぱりわからん!
mylib.aをビルドするルールが見つからない!?(CStaticLibraryに含まれてないの?)
glfwInitがリンクエラー?glClearがリンクエラー?
全部書いてるつもり・・・


・なれたWindows上のCygwinでOMake

しかしVC++に甘え切っていたためOMakeどころかgccですらビルドできなかった。


・次に段階を落として、単ファイル(main.cpp) + glfwでコンパイルするところから。

  • Iオプションでインクルードディレクトリ
  • Lオプションでリンクディレクトリ
  • lオプションでライブラリ ライブラリはビルド対象よりも後ろに記述する。
  • oオプションで出力ファイル名

ロスコンパイラ(i686-w64-mingw32-gcc)でGUIプログラムはビルドする!

基本を学んでMakefileからビルド&実行に成功!というか簡単だった・・・


Cygwin + OMakeで単ファイル(main.cpp) + glfw
まず、OMakeのOSTypeにCygwinの判定があるはずなのにclでコンパイルしようとする!
if $(equal $(OSTYPE), Cygwin)に引っかからない!→Win32をCywin用としてごまかした。
各オプションもすべてgcc用に置き換える。
CXXFLAGS コンパイラへ渡すオプションを記述
LDFLAGS リンカへ渡すオプションを記述


WinMainがどこからか参照されている?→mingw固有の問題?ubuntuと共有のコードで行きたいので保留
Makefile直書きだと問題ないので謎


UbuntuでOMakeで単ファイル + glfw
大体Cygwinと同じで、パスだけUbuntu用に修正
ビルドはかなりすんなりいけたけど、実行時にエラーorz
X Error of failed request: BadRequest(invalid request code or no such operation


わけわからんので今日はここまで。
gccが分かってなかったので話になりません。
やっとコマンドラインでビルドできそうな感じになってきた。
IDE楽すぎたんだな