LoginSignup
1
0

More than 5 years have passed since last update.

OpenGL (glfw)・環境構築 ( OS : Mac , IDE : Eclipse CDT )

Last updated at Posted at 2018-02-17

OpenGL(glfw) を mac で動かす。
環境構築 から Hello World を実行するところまでをまとめる。

1. そもそも OpenGL(glfw) とは?

OpenGL についてを参照

2. 開発環境の選定

前提条件

  • OpenGL のソフトを書くには C++ の実行環境が必要
  • OpenGL のソフトを書くには glfw, freegult などのライブラリが必要

今回は...

  • C++ 開発用に Eclipse CDT を使う
    • windows や linux とも開発環境を揃えるため
  • ライブラリには glfw を使う
    • どうも freegult はもう更新止まっているみたい

3. 開発環境の構築

eclipse のインストール

  1. Eclipse Marsへアクセス
    注意: 2016.08 時点では、marsでないと glfw がうまく動かなかった
  2. Eclipse IDE for Java Developers の Mac Cocoa 64-bit をダウンロード
  3. Eclipse を起動して、Hello World が動くか確認してみる
    • mac は標準で GCC (c++コンパイラ) が入っているので、そのまま動くはず

glfw ライブラリの入手

glfw ライブラリは homebrew からでも入手できるが、それはバージョンが古いとの事。なので、glfw のソースコードからライブラリを生成する事にする。
ライブラリ生成の手順は以下の通り

  1. glfw のソースコードを入手
  2. cmake で glfw ライブラリを生成する make を生成
  3. make を実行して、glfw ライブラリを生成する

具体的な手順は以下の通り

glfw のソースコードを入手

  1. glfwサイトへアクセス
  2. Download → Source package からダウンロード

cmake のインストール

  1. cmakeサイトへアクセス
  2. Download → Latest release(3.6.1) → Mac OSX 10.6 or later から .dmg をダウンロード
  3. ダウンロードした .dmg からインストール

cmake と glfw ソースコードから makefile を生成

  1. cmake(GUI)を起動
  2. Browse Source ボタン から glfw の CMakeLists.txt が存在しているパスを指定する
    (glfw-3.2/CMakeLists.txt なら glfw-3.2 へのパスを指定する)
  3. Browse Build ボタン から 任意のパス(binを生成させたい場所) を指定
    [注意] glwfフォルダとは別のフォルダにしないと上手くいかないのかも
  4. デフォルトから変更した点は下記

    • CMAKE_ECLIPSE_VERSION を 4.5(Mars)
    • CMAKE_INSTALL_PREFIX を 任意のパス (usr/local mac は書き込めないので失敗する) スクリーンショット 2016-10-02 14.28.17.png
  5. Configure ボタン を押す
    -> Eclipse CDT4 - Unix Makefiles を選択
    -> リストから赤い表示がなくなるまで Configure ボタンを押す

  6. Generate ボタン を押す
    -> 成功表示が出て、2.で指定したパス直下に Makefile が存在すれば成功

[補足]
* 失敗して "Generate" をやり直す場合は、2.で指定したパスの中身を空にしてみる

makefile から glfw ライブラリを生成

  1. ターミナルを起動
  2. Makefile の存在するパスへ移動
  3. make all コマンドを実行
  4. sudo make install コマンドを実行
    -> CMAKE_INSTALL_PREFIX に指定したパスに src/libglfw3.a のようにライブラリが生成されていれば成功

4. glfw を動かしてみる

先ほどの glfw ライブラリが動くかを確認するために、最小の glfw コードを書いて動作確認をしてみる。最小の glfw ソースコードは glfw 公式の documentページ にあるのでこれを使う。

  1. eclipse CDT の起動
  2. 空の C++ Project を作成

    • 上部メニューから File ➡️ New ➡️ c++ project を選択して Next
    • Project name を適当に入力
    • Executable ➡️ Hello World C++ Project ➡️ Cross GCC を選択して Next
    • 以降は全て Next 、最後に Finish を押す
  3. project の property を開いて、以下を設定する

    • [C/C++ General] → [Path and Symbols] → [Includes] → [GNU C++] → [Add ボタン]を押して、ヘッダの存在する include/GLFW へのパスを設定する
    • [C/C++ General] → [Path and Symbols] → [Library Paths] → [Add ボタン]を押して、libglfw.3.a の存在するフォルダへのパスを設定する
    • [C/C++ General] → [Path and Symbols] → [Libraries] → [Add ボタン]を押して glfw3 と設定する。
    [補足]
    * Add の際に [Add All Configurations] にチェックを入れると Debug,Release 共に設定が反映されるので入れておくと良い。
    * libraries に登録する際は、先頭の lib と 拡張子 を消して指定するので、libglfw3.2.a → glfw3 となる。
    
    • C/C++ BUild -> Settings -> Tool Setting -> MacOSX C++ Linker -> Command: に g++ -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo を指定
  4. Project Explore から src / main.cpp を開く

  5. main.cpp を次のように書き換える

    main.cpp
    #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 */
            glClear(GL_COLOR_BUFFER_BIT);
    
            /* Swap front and back buffers */
            glfwSwapBuffers(window);
    
            /* Poll for and process events */
            glfwPollEvents();
        }
    
        glfwTerminate();
        return 0;
    }
    
  6. Invalid Arguments のエラーが出る場合は以下を設定する

    • project の property を開く
    • [C/C++ General] → [Code Analysis] → リストから [Invalid Arguments] の Serverity を Error から Warning に変更する
  7. 実行する

    • project → build project
    • project explore を右クリック → Debug As もしくは Run As → Local C/C++ Application を選択
    • 黒いウィンドウが立ち上がれば成功

5. その他

動かした環境

  • OSX EL Capitan 10.11.6
  • Eclipse IDE for C/C++ Mars 2 Release (4.5.2) / 日本語化無し
  • glfw 3.2

参考URL

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0