openFrameworksを試してみた。
高木です。こんにちは。
昨日の土曜日は社内の勉強会でした。
弊社では、原則として第3土曜日の午後から勉強会を行っています。
そのときどきでテーマを決めて、いっしょに勉強する機会を設けているのです。
普段は残業や休日出勤をさせることは少ない(ゼロとはいいません)のですが、平日の夜や月一の勉強会は勉強のために残業や休日出勤をさせることもあります。
「させる」といっても強制ではなく任意参加です。
無理強いしても何も身につきませんので。
私が社会人になったばかりのころ、当時の上司からなるべく定時後は勉強するようにいわれました。
もちろん当時も強制ではありませんでした。
そしてもうひとついわれたのが、「ホームワークでやれとはいいません」ということでした。
つまり、「残業をつけていいよ」という意味でした。
新卒で入社して3ヶ月の研修が終わったばかりの時期でしたので、早い話が未経験者ですし、そのままでは何もできません。
残業や日中の業務の合間を見つけていろいろ勉強しました。
自分で回路図を書いてハンダ付けしたり、プログラミングをやったり、その他もろもろです。
自宅に帰ってから勉強といってもなかなかできないもので、それは私自身が実体験としてよくわかっています。
なので、自分が若いころに勤めていた会社の文化を思い出して、可能な範囲で再現しているに過ぎません。
昨日の勉強会のテーマはopenFrameworksです。
このテーマは社員からのリクエストで決まったのですが、私も興味を持っていたので、こういう機会が生まれたのはよいことだと思っています。
半日ぐらいの勉強会なので、本格的にプログラミングをやるというよりは、初回は環境構築だけで終わりそうな気がしていましたが、本当にその通りになってしまいました。
私が最初に環境構築を試みたのはFedora 30でした。
この手のオープンソースものはLinuxのほうがスムーズに行くことが多いので、根性無しの私はそっちを選んだのです。
openFrameworksの公式サイトのダウンロードページには、プラットフォームごとのパッケージが配布されています。
また、
openFrameworksを使用するためにはIDE(統合開発環境)が必要です。
と書かれていたので、Qt Creatorの環境も構築したのですが、examplesを動かすだけならコマンドラインからmakeするだけでも十分でした。
ダウンロードしたパッケージを展開したあと、scripts/linux/fedoraディレクトリにあるinstall_dependencies.shを実行するのですが、これはサクッと成功しました。
問題はそのあとで、compileOF.shを実行したときにOpenGL関連のヘッダファイルでtypedefされているPFNGLFRAGMENTLIGHTFVSGIXPROCがconflictしたと怒られてしまいました。
ちょっと調べたところ、同じ問題に直面していた人がいたようで、openFrameworksのフォーラムに「Cannot Compile OF, errors on of3dPrimitives and conflicting GL / glew declarations」という見出しで掲載されていました。
そこで提案されていた解決方法は安直でしたが、実際に試したところうまくいきました。
せっかくなので引用しておきます。
maybe these are related information ?? https://github.com/mupen64plus/mupen64plus-video-z64/pull/16 https://github.com/mupen64plus/mupen64plus-video-z64/pull/16/commits/8388c19cca083b2ac9df6c50edd84238bd3e340d as error log, I commented out line ::212 of /OF_DIRECTORY/libs/openFrameworks/utils/ofConstants.h. // #include
// –> comment out and it works. [image] try it and let me know it works.
要するに、libs/openFrameworks/utils/ofConstants.hの212行目、
1 | #include <GL/glext.h> |
をコメントアウトすればよいとのことでした。
これでコンパイルは最後まで進みましたが、pocoをコンパイルしたGCCのバージョンがどうこうという警告が出ていました。
とりあえずスルーしてexamplesを試したのですが、いくつかはコアダンプする羽目に。
pocoの問題ないのか、それ以外なのかは調査できていません。
その後、Windows上のMSYS2の環境でも試しましたが、ちょっと長くなってしまったので次回にまわしたいと思います。