- ベストアンサー
OpenGLコンパイルエラー!Cygwinでの対応方法は?
- CygwinでOpenGLをコンパイルしようとしていますが、エラーメッセージが表示されてコンパイルできません。
- エラーメッセージには「ハクヒ。・ィ・鬘シ」の部分は文字化けだと思われます。
- Cygwinのインストールは完了しており、足りないものはないはずです。エラーの原因と対応方法について教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> GLAPI const wchar_t * APIENTRY gluErrorUnicodeStringEXT (GLenum error); において「wchar_t 型が定義されていない」という 既知の問題のようです。 http://www.cygwin.com/ml/cygwin/2004-02/msg00990.html 僕の環境ではコンパイルできたので、「あれれ」と 思っていたら、/include/w32api/GL/glu.h に gluErrorUnicodeStringEXT という関数の定義が ありませんでした。 僕の環境も古いのかな? --- とりあえず解決策としては #include<GL/glut.h> #include<stdio.h> #include<math.h> を #include<stdio.h> #include<math.h> #include<windows.h> #include<GL/glut.h> にしてみて下さい。 それでも駄目な場合は # ifndef _WCHAR_T_DEFINED typedef unsigned short wchar_t; # define _WCHAR_T_DEFINED # endif を /include/w32api/GL/glu.h のトップに書き加えてください。
その他の回答 (3)
- togino
- ベストアンサー率75% (97/129)
# cygnus ・・・って大部古い環境じゃないですか? もしかしてお手伝いできるかもしれないので コンパイルしようとしているプログラムを 提示してもらえますか? 今手持ちの cygwin 環境で http://www.opengl.org/resources/code/basics/samples/index.html のサンプルコードをコンパイル実行できましたので ~>gcc -o teapot.exe teapot.c -lglut32 -lglu32 -lopengl32 あと、/usr/include/w32api/GL/glu.h の230 行目に明らかに変なことがあったりしません?
補足
ご回答ありがとうございます。 教えてくださったサンプルコードをダウンロードしてコンパイル・実行してみましたところ、どちらも正常にでき、ちゃんと立体のティーポットが出てきました。 コンパイルしようとしてできなかったプログラムを以下に書いておきます。学校の授業でやったことを自宅でも復習しようと思って作った簡単なサインカーブと円を描かせるプログラムです。 #include<GL/glut.h> #include<stdio.h> #include<math.h> void display(void){ int i; double a=0.9; //倍率の指定(0.0~1.0で指定) //ウィンドウを塗りつぶす glClear(GL_COLOR_BUFFER_BIT); //描画の色を指定 glColor3d(1.0,0.0,0.0); //直線の描画 glBegin(GL_LINES); //直線の描画開始 glVertex2d(-1.0*a,0.0); glVertex2d(1.0*a,0.0); glEnd(); //直線の描画終了 //サイン曲線の描画 glBegin(GL_LINE_STRIP); //折れ線の描画開始 for(i=0;i<360;i++){ glVertex2d(a*(i*2/360.0-1.0), a*sin(3.14*i/180)); //aは倍率 } glEnd(); //折れ線の描画終了 //円の描画 glBegin(GL_LINE_STRIP); //折れ線の描画開始 for(i=0;i<360;i++){ glVertex2d(a*cos(3.14*i/180), a*sin(3.14*i/180)); //aは倍率 } glEnd(); //折れ線の描画終了 glFlush(); } void init(void){ //背景の指定 glClearColor(1.0,1.0,1.0,0.0); } int main(int argc, char *argv[]){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutCreateWindow(argv[0]); glutDisplayFunc(display); init(); glutMainLoop(); return 0; } こんな感じですσ(^^;)コメントアウトしている言葉は自分が後から見て分かりやすいようにと書いていたものなので気にしないで下さい。 また、/usr/include/w32api/GL/glu.hには230行目には以下のようなことが書かれていました。 GLAPI const wchar_t * APIENTRY gluErrorUnicodeStringEXT (GLenum error); もし、これで何か分かるようなことがありましたら教えて下さい。よろしくお願いします。
- asuca
- ベストアンサー率47% (11786/24626)
Cygwinのインストール方法自体が間違っているのではないでしょうか? 正常にインストールされていたらcygnusディレクトリがあるはずです。
補足
cygwinのホームページへ行って何度もset.upをダウンロード・実行しましたが、インストールはコンプリートしているのにやはりcygnusはインストールされていませんでした。いろいろ調べてみましたが、もともとsetup.exeの中にはcygnusがインストールされるようなものは含まれていないような気がするのですがどうなんでしょうか。もし間違えていたらすみません。
- asuca
- ベストアンサー率47% (11786/24626)
参考URL参照してみて下さい。 それでもだめでしょうか?
補足
参考URLにあるcygnusの場所が分かりません。検索でcygnusと名のつくファイルを探しましたが見つかりませんでした。すみません、初心者なもので…。もし宜しければ教えて下さい。
お礼
おかげ様でちゃんとコンパイル・実行できました!ありがとうございます!!ここ数日間ずっと試行錯誤していたのですが全然ダメで、解決策を知っている友達もいなくて困っていたので、解決できて本当に嬉しいです。ありがとうございましたm(__)m それで、「一難去ってまた一難」とはよく言ったもので、実はやっているとまた新たに問題が発生しました。友達も同じ症状で悩んでいます。もしお時間がありましたらそちらも見てくださればと思います。では。