From: Anthony Cagle Date: 2001-09-15T01:14:40+09:00 Subject: [ruby-talk:21198] OpenGL under windows Hello. I have been trying without success to successfully compile the Ruby_OpenGL interface to run under Windows. I have tried all three of the distributions from the RAA (31, 32 and 32a). The first two seem unable to locate the native opengl modules, while 32a locates them, but make produces the listing appended below. I am doing this on a Windows ME machines under cygwin 1.3.3 downloaded form the Cygnus site. Noboyuki Horie was kind enough to send me some changes to glu.c that he used to make it work wiht MS VC++. However, my problems is that I am trying to get it to work as part of the normal Cygnus distribution. I am not really a C programmer and have never used the Cygnus products before, so I may have misunderstood this task. I have been trying to run the three commands ruby extconf.rb make make install from the cygwin bash command line. Since I do not have a C complier or make installed on the Windows machine, they will not run from the MS-DOS prompt. Basically, I have three questions. 1. Could the Ruby_OpenGL interface be made into a binary distribution for Windows or must it be recompiled for each target machine? This is going to be a big problem if every machine is slightly different and requires a recompile. (And if such a universal binary exists, could somebody send it to me!) 2. If I'm on the right track with the above, could my problem be that I do not have the proper Cygnus components installed? I'm not sure what components I need to have available beyond the bash shell, gcc and make. I note that there was an opengl module, for instance, but loading it did not seem to make a difference. 3. Is there something in this compiler listing that is obvious to fix for more experienced C programmers? I tired editing the glu.c file and applying the changes that Noboyuki Horie suggested [ruby-talk:21179]. It did eliminate the first set of error messages, the "warning about passing argument 3)" but did not eliminate the second set. I could not figure out how to proceed from there. I realize I am out of my depth here, and if the answer is wait until the next release, then I can put this project on the back burner. However, I've burned a lot of hours in the last week trying to figure this out, and I as least want other who may be proceeding down the same path to have the benefit of my experience. Thanks, Anthony $ ruby extconf.rb checking for () in -lopengl32... yes checking for () in -lglu32... yes creating Makefile checking for XAllowDeviceEvents() in -lXi... no checking for () in -lglut32... yes creating Makefile $ $Make all Now Making opengl extend module make[1]: Entering directory `/cygdrive/c/cygwin/opengl' gcc -DUSEIMPORTLIB -Os -DWIN32 -I/cygdrive/c/RUBY/lib/ruby/1.6/i386-cygwin -I/usr/local/cygwin-local/include -I/usr/local/cygwin-local/include -c -o glu.o glu.c make[1]: Leaving directory `/cygdrive/c/cygwin/opengl' glu.c: In function `glu_TessCallback': glu.c:787: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:798: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:809: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:820: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:831: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:839: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:846: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:853: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:860: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:867: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:874: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c:881: warning: passing arg 3 of `gluTessCallback' from incompatible pointer type glu.c: In function `InitializeGLU': glu.c:1479: `GLU_BEGIN' undeclared (first use in this function) glu.c:1479: (Each undeclared identifier is reported only once glu.c:1479: for each function it appears in.) glu.c:1480: `GLU_VERTEX' undeclared (first use in this function) glu.c:1481: `GLU_END' undeclared (first use in this function) glu.c:1482: `GLU_ERROR' undeclared (first use in this function) glu.c:1483: `GLU_EDGE_FLAG' undeclared (first use in this function) glu.c:1484: `GLU_CW' undeclared (first use in this function) glu.c:1485: `GLU_CCW' undeclared (first use in this function) glu.c:1486: `GLU_INTERIOR' undeclared (first use in this function) glu.c:1487: `GLU_EXTERIOR' undeclared (first use in this function) glu.c:1488: `GLU_UNKNOWN' undeclared (first use in this function) make[1]: *** [glu.o] Error 1 make: *** [opengl.so] Error 2 $