■ 2016年02月06日 [OpenGL][メモ] NuGet による freeglut / GLFW / GLEW の組み込み
たけなわ
修論や卒論の提出が来週~再来週に控えているので, なかなか皆さんお忙しそうです. ほかにも, うちの学科では来週に課題の提出・発表を控えている方々もいらしたりして, 演習室もなかなかの活況を呈しているように見受けられます. 皆様におかれましては体調を崩されたりデータを失われたり単位を落とされたりしないよう, くれぐれもお気を付けくださいますようお願い申し上げる次第です.
NuGet
Microsoft の Visual Studio には, NuGet というパッケージ管理機能が用意されています. 実のことを言うと, 私は今までこれを使ったことがありませんでした. 先日, 学生さんのプログラムをチェックしたら, そのプロジェクトで使っていたライブラリが NuGet で組み込まれていることに気づきました.
その時は「そんなもんもあるのかー」っていう感じでスルーしてたんですけど, 今日これで freeglut が組み込めるのかなと思って試したら, とっても簡単にプロジェクトに組み込むことができました. ライブラリのファイルをシステムのフォルダに追加したり, プロジェクトのプロパティの「VC++ ディレクトリ」を修正したりする必要もありません. もちろん管理者権限も必要ありません.
今書いてるもんもこれで書き換えたほうがいいかなぁ…
NuGet パッケージの追加
プロジェクトを選択し, 「プロジェクト」メニューから「NuGet パッケージの管理」を選んでください.
![NuGet パッケージの追加 NuGet パッケージの追加](https://marina.sys.wakayama-u.ac.jp/~tokoi/images/20160206_0.png)
freeglut の組み込み
「NuGet パッケージの管理」のダイアログウィンドウの右上の検索フィールドで "freeglut" を検索してください. freeglut が見つかったら、それをインストールしてください.
![freeglut のインストール freeglut のインストール](https://marina.sys.wakayama-u.ac.jp/~tokoi/images/20160206_1.png)
GLFW の組み込み
「NuGet パッケージの管理」のダイアログウィンドウの右上の検索フィールドで "glfw" を検索してください. GLFW が見つかったら、それをインストールしてください.
![GLFW のインストール GLFW のインストール](https://marina.sys.wakayama-u.ac.jp/~tokoi/images/20160206_2.png)
GLEW の組み込み
「NuGet パッケージの管理」のダイアログウィンドウの右上の検索フィールドで "glew" を検索してください. GLEW は二つ見つかると思いますが, 最初の方は Multi Context ライブラリとそうでないものを別々にインストールできるのに対し, 後の方 (アイコンが帽子の方) が *私が確認した時は* バージョンが新しいものでした.
![GLEW のインストール GLEW のインストール](https://marina.sys.wakayama-u.ac.jp/~tokoi/images/20160206_3.png)
freeglut / GLFW / GLEW を全部組み込む
freeglut, GLFW, GLEW をそれぞれ個別にインストールする代わりに, 全部を一度にインストールするパッケージもあります. 「NuGet パッケージの管理」のダイアログウィンドウの右上の検索フィールドで "glut" を検索してください. Nupengl Core をインストールすれば, これらの 32bit 版と 64bit 版を全部組み込むことができます.
![画像の説明 画像の説明](https://marina.sys.wakayama-u.ac.jp/~tokoi/images/20160206_4.png)
おまけ
OpenCV もありました. *私が確認した時は* バージョン 2.4.10 でしたけど.
![OpenCV のインストール OpenCV のインストール](https://marina.sys.wakayama-u.ac.jp/~tokoi/images/20160206_5.png)
あ, 3 は下のほうにあるのかもしれない (見てない).
visualsudio2017でもglewは使えるでしょうか?
たんさま,コメントありがとうございます.Visual Studio 2017 でも GLEW は使えます.ただ,もしかしたら NuGet を Visual Studio Installer の「変更」の「個別のコンポーネント」からインストールする必要があるかもしれません.また,GLEW 自体も glew.v140 というパッケージの方でないとうまくいかなかったかもしれません.あるいは,nupengl.core という(全部入り)パッケージも,うまくいったように思います.<br><br>推定で書いているのは,実はこういう風にパッケージによって不具合があったりすることがあるので,今は自分でビルドしたものを使うようにしているからです.すみません.
openALの導入は可能でしょうか
すにさま、コメントありがとうございます。<br>使ったことがないので使えるかどうかわかりませんが、Visual Studio で検索したところ、パッケージは存在するようです。
はじめまして <br>Nupengl.coreを使って一括でインストールしたのですが、「GLFW による OpenGL 入門」のP.37のソースを実行すると、<br>glClearColor(1.0f, 1.0f, 1.0f, 0.0f); の箇所で<br>エラー LNK2019 未解決の外部シンボル __imp__glClearColor@16 が関数 _main で参照されました とエラーになってしまいます。<br>Nupengl.coreでインストールした場合でも<br>p.19~25の設定をマニュアルでやらなくてはいけないのでしょうか。<br>よろしくお願いいたします。
ゆんさま、コメントありがとうございます。お返事が遅くなり、申し訳ありません(通知メール出すように設定したのに来ない…)。 <br>GLFW や GLEW を Nuget で組み込んだときは、それぞれ glfw3.lib や libglew32d.lib をリンクするライブラリに指定されるのですが、 <br>opengl32.lib は OS のものを使いますので、リンクするライブラリとして明示的に指定してみてください。 <br>ソースに以下の1行を追加してみてください(p.24)。 <br>#pragma comment(lib, "opengl32.lib") <br>よろしくお願いします。
床井先生 回答ありがとうございました。 <br>こちらこそ 確認がおそくなってしまいすみません。 <br>今後ともよろしくお願いいたします。