アプリ版:「スタンプのみでお礼する」機能のリリースについて

cygwinでOpenGLのコンパイルをしようとしているのですが出来ません。
gcc -o3 -lglut32 -lglu32 -lopengl32 sample.c と入力すると
/usr/lib/gcc/x86_64-pc-cygwin/4.8.1/../../../../x86_64-pc-cygwin/bin/ld: -lglut32 が見つかりません
collect2: エラー: ld はステータス 1 で終了しました
と表示されます。
cygwinのパッケージはすべてインストールしたので足りないものはないと思います。
何が問題なのでしょう。
ご存知の方は回答をよろしくお願致します。

A 回答 (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 のそれぞれの依存関係によって決まっているので、指定する順番には気を付ける必要があります。
    • good
    • 0
この回答へのお礼

-lglut -lGLU -lGL でやったら出来ました。
ありがとうございました!

お礼日時:2013/10/14 16:57

最新の 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 と指定して見たら、こちらで試した簡単なプログラムは通りました。
    • good
    • 1

cygwin には GLUT は入っていなかったと思いますので、別途インストールする必要があります。


参考URLから "freeglut 2.8.1 MinGW Package" をダウンロードして cygwin の中に入れるとできると思います(未確認)。
なおこの場合、-lglut32 の代わりに -lfreeglut を使ってください。

参考URL:http://www.transmissionzero.co.uk/software/freeg …
    • good
    • 0

Duddlay と申します。



>-lglut32 が見つかりません
ANo.1 の方の仰るとおり、「glut32」がどこにあるのか確認されてみてはいかがでしょうか。
OpenGL のライブラリィか何かでしょうか。

もし無ければ、glut32.lib ? (DLL かもしれませんが)をどこかのサイトから
ダウンロードして、ライブラリィファイルのあるフォルダへコピーして下さい。

※「glut32」を Google 等で検索すると、サイトが出てくると思います。

以上、ご参考までに。
    • good
    • 0

とりあえず


-lglut32
でリンクするはずのライブラリがあるかどうか調べてみたら?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!