dポイントプレゼントキャンペーン実施中!

OpenGLをコンパイルしようとしてCygwinで
「gcc -o sample (プログラムの名前).c
-I/usr/local/include -lglut32 -lglu32 -lopengl32」
と入力すると
「In file included from /usr/include/GL/glut.h:132,
from (プログラムの名前).c:1:
/usr/include/w32api/GL/glu.h:230: error ハクヒ。・ィ・鬘シ before '*' taken」
と表示されてコンパイルできません。「ハクヒ。・ィ・鬘シ」の部分は文字化けだと思います。このエラーメッセージから何が問題か分かる方がいらっしゃいましたら回答していただけると嬉しいです。CygwinはNetinstallからすべてのものをインストールしたので足りないものはないと思います。よろしくお願いします。

A 回答 (4件)

> GLAPI const wchar_t * APIENTRY gluErrorUnicodeStringEXT (GLenum error);



において「wchar_t 型が定義されていない」という
既知の問題のようです。

http://www.cygwin.com/ml/cygwin/2004-02/msg00990 …

僕の環境ではコンパイルできたので、「あれれ」と
思っていたら、/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
のトップに書き加えてください。

参考URL:http://www.cygwin.com/ml/cygwin/2004-02/msg00990 …
    • good
    • 0
この回答へのお礼

おかげ様でちゃんとコンパイル・実行できました!ありがとうございます!!ここ数日間ずっと試行錯誤していたのですが全然ダメで、解決策を知っている友達もいなくて困っていたので、解決できて本当に嬉しいです。ありがとうございましたm(__)m
それで、「一難去ってまた一難」とはよく言ったもので、実はやっているとまた新たに問題が発生しました。友達も同じ症状で悩んでいます。もしお時間がありましたらそちらも見てくださればと思います。では。

お礼日時:2004/07/17 09:11

# cygnus ・・・って大部古い環境じゃないですか?



もしかしてお手伝いできるかもしれないので
コンパイルしようとしているプログラムを
提示してもらえますか?

今手持ちの cygwin 環境で
http://www.opengl.org/resources/code/basics/samp …
のサンプルコードをコンパイル実行できましたので
~>gcc -o teapot.exe teapot.c -lglut32 -lglu32 -lopengl32

あと、/usr/include/w32api/GL/glu.h
の230 行目に明らかに変なことがあったりしません?

参考URL:http://www.opengl.org/resources/code/basics/samp …

この回答への補足

ご回答ありがとうございます。

教えてくださったサンプルコードをダウンロードしてコンパイル・実行してみましたところ、どちらも正常にでき、ちゃんと立体のティーポットが出てきました。

コンパイルしようとしてできなかったプログラムを以下に書いておきます。学校の授業でやったことを自宅でも復習しようと思って作った簡単なサインカーブと円を描かせるプログラムです。

#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);

もし、これで何か分かるようなことがありましたら教えて下さい。よろしくお願いします。

補足日時:2004/07/16 02:03
    • good
    • 0

Cygwinのインストール方法自体が間違っているのではないでしょうか?



正常にインストールされていたらcygnusディレクトリがあるはずです。

参考URL:http://www.alles.or.jp/~torutk/oojava/meadow/cyg …

この回答への補足

cygwinのホームページへ行って何度もset.upをダウンロード・実行しましたが、インストールはコンプリートしているのにやはりcygnusはインストールされていませんでした。いろいろ調べてみましたが、もともとsetup.exeの中にはcygnusがインストールされるようなものは含まれていないような気がするのですがどうなんでしょうか。もし間違えていたらすみません。

補足日時:2004/07/16 01:55
    • good
    • 0

参考URL参照してみて下さい。


それでもだめでしょうか?

参考URL:http://pitecan.com/info/winglut.html

この回答への補足

参考URLにあるcygnusの場所が分かりません。検索でcygnusと名のつくファイルを探しましたが見つかりませんでした。すみません、初心者なもので…。もし宜しければ教えて下さい。

補足日時:2004/07/14 22:44
    • good
    • 0

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