- ベストアンサー
cygwinでOpenGLのコンパイルができない
- cygwinを使用してOpenGLのコンパイルをしようとしたが、エラーが発生している。
- gcc -o3 -lglut32 -lglu32 -lopengl32 sample.cと入力すると、-lglut32が見つからないというエラーが表示される。
- cygwinのパッケージはすべてインストールされており、問題が何であるか不明である。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
回答No.4 の者です。すみません。訂正させて下さい。 (訂正) -glut -lGL ではなく -lglut -lGLU -lGL を指定して下さい 改めて確認した所、てもとの cygwin には GLU を入れていませんでした(汗)。GLU を入れて再度確認した所、/usr/lib/libGLU.dll.a ができたので、GLU も利用するのであれば -lGLU を指定して下さい。 また、 > 何が問題なのでしょう。 との事ですが、エラーメッセージに出ている通り「-lglut32 が見付からない」というのが問題点です。"-l某" というのは「"lib某.a" というライブラリファイルとリンクする」という意味なので、エラーメッセージは "lib某.a" というファイルが既定の場所に見付からなかったという事と解釈できます。 システムのパッケージで入れたライブラリの場合、大抵 /usr/lib/ の中に "lib某.a" は配置されますので、先ずはそこにファイルがあるか確認するのが解決の第一段階になる訳です。もしファイルがなければ、ファイル名が微妙に異なっているか、ライブラリが入っていないかという事になります。今回の場合は /usr/lib/ に libglut.a などのファイルがあったので、これらを試して見てコンパイルできる事を確認した訳です。 因みに、-lglut -lGLU -lGL の順番は、 GLU/GLU/OpenGL のそれぞれの依存関係によって決まっているので、指定する順番には気を付ける必要があります。
その他の回答 (4)
- akinomyoga
- ベストアンサー率85% (100/117)
最新の cygwin では GLUT も入っている様です。 結論からいうと、多分、 -lglut32 -lglu32 -lopengl32 の代わりに -lglut -lGL と指定すれば通りそう(?)です。 ★GLUT は OpenGL を手軽に使う為の OpenGL とは別のライブラリです。そして、私も回答3の方と同様に「cygwin に GLUT が含まれていないのではないか」と疑ってみたのですが、実際に cygwin の中を確認すると /usr/include/GL/glut.h があるので入っているようです。(よく考えたら、入っていなければ、リンク時ではなくコンパイルの段階でエラーになっているはずですね…。) /usr/lib の中を除いたら怪しそうなファイル libglut.a と libGL.a がありましたので、それぞれ -lglut -lGL と指定して見たら、こちらで試した簡単なプログラムは通りました。
- myuki1232
- ベストアンサー率57% (97/170)
cygwin には GLUT は入っていなかったと思いますので、別途インストールする必要があります。 参考URLから "freeglut 2.8.1 MinGW Package" をダウンロードして cygwin の中に入れるとできると思います(未確認)。 なおこの場合、-lglut32 の代わりに -lfreeglut を使ってください。
- DUDDLAY
- ベストアンサー率66% (136/203)
Duddlay と申します。 >-lglut32 が見つかりません ANo.1 の方の仰るとおり、「glut32」がどこにあるのか確認されてみてはいかがでしょうか。 OpenGL のライブラリィか何かでしょうか。 もし無ければ、glut32.lib ? (DLL かもしれませんが)をどこかのサイトから ダウンロードして、ライブラリィファイルのあるフォルダへコピーして下さい。 ※「glut32」を Google 等で検索すると、サイトが出てくると思います。 以上、ご参考までに。
- Tacosan
- ベストアンサー率23% (3656/15482)
とりあえず -lglut32 でリンクするはずのライブラリがあるかどうか調べてみたら?
お礼
-lglut -lGLU -lGL でやったら出来ました。 ありがとうございました!