Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs Date: Wed, 19 Feb 2003 16:33:13 -0500 (EST) From: Igor Pechtchanski Reply-To: cygwin AT cygwin DOT com To: =?iso-8859-1?Q?Mikael_=C5sberg?= cc: cygwin AT cygwin DOT com Subject: Re: MESA In-Reply-To: <003b01c2d85d$d5b98aa0$70eaec82@mindcooler> Message-ID: Importance: Normal MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id h1JLXQi04491 On Wed, 19 Feb 2003, Mikael Åsberg wrote: > ----- Original Message ----- > From: "Igor Pechtchanski" > > > On Wed, 19 Feb 2003, Mikael sberg wrote: > > > > > ----- Original Message ----- > > > From: "Igor Pechtchanski" > > > > > > > On Wed, 19 Feb 2003, Mikael sberg wrote: > > > > > > > > > ----- Original Message ----- > > > > > From: "Igor Pechtchanski" > > > > > > > > > > > On Wed, 19 Feb 2003, Mikael sberg wrote: > > > > > > > > > > > > > ----- Original Message ----- > > > > > > > From: "Igor Pechtchanski" > > > > > > > [snip] > > > > > > > > > > > > > > > Try "gcc -Wall -o test test.c -L/usr/local/lib -lGL -lGLU -lglut", > > > > > > > > or something like that... > > > > > > > > Igor > > > > > > > > > > > > > > Thanks for the quick reply, here's what I tried: > > > > > > > $ gcc -Wall -o test test.c -L/usr/local/lib/GL -lGL -lGLU -lglut > > > > > > ^^^ > > > > > > > > > > /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: > > > > > > > cannot find -lGL > > > > > > > collect2: ld returned 1 exit status > > > > > > > > > > > > > > This is confusing to me, because I recalling reading that one > > > > > > > should link to -lGL etc. Any ideas? > > > > > > > > > > > > It works better if, after a -L, you specify a directory that > > > > > > actually contains the relevant libraries (such as /usr/local/lib). > > > > > > Igor > > > > > > > > > > I just found that mistake, lol, and when I issued the following: > > > > > $ gcc -Wall -o test test.c -L/usr/local/lib -lGL -lGLU -lglut > > > > > > > > > > I get a massive amount of linking errors: > > > > > [snip] > > > > > collect2: ld returned 1 exit status > > > > > Very long, sorry =( > > > > > > > > You are most likely missing some X library (judging by the names > > > > of the symbols). Make sure you installed all the libraries > > > > MESA/glut require. Check the order of the '-l' flags, too -- it > > > > matters. You'll probably find some useful info in a README that > > > > came with MESA or OpenGL. > > > > Igor > > > > > > Someone using linux said I should try linking with these > > > x-libraries: -lXi -lXmu -lm -lXext -lX11, so I issued: > > > $ gcc -Wall -o test > > > test.c -L/usr/local/lib -lGL -lGLU -lglut -L/usr/X11R6/lib -lXi > > > -lXmu -lm -lXext -lX11 > > > > > > That yields a great number of errors (listed last). > > > > > > When I installed cygwin, I made sure I installed the X libraries. > > > Maybe I am specifying the path wrong, or I should use other names, > > > or I haven't installed what I need (if I haven't done that, I > > > wouldn't know what more to install =(). > > > > > > Here are the errors: > > > /usr/local/lib/libglut.a(glut_event.o)(.text+0xef7): In function `processEventsAndTimeouts': > > > /home/Administrator/Mesa-5.0/src-glut/glut_event.c:388: undefined reference to `_glXWaitX' > > > [snip] > > > collect2: ld returned 1 exit status > > > > Looks like library order to me (I don't know OpenGL, so I wouldn't be able > > to provide the exact gcc command that will work). Try using "nm" on the > > three GL libraries, and find out which defines the missing symbols. Put > > that one last. Repeat until linked successfully... :-) > > At this point I probably should let the OpenGL maintainer take over, > > anyway. Good luck. > > Igor > > /usr/local/lib contains: > libGL.a libGLU.a libOSMesa.a libglut.a > libGL.la libGLU.la libOSMesa.la libglut.la > > The first undefined reference is: > /usr/local/lib/libglut.a(glut_event.o)(.text+0xef7): In function `processEventsAndTimeouts': > /home/Administrator/Mesa-5.0/src-glut/glut_event.c:388: undefined reference to `_glXWaitX' > > so I tried: > nm /usr/local/lib/libGL.a | grep _glXWaitX, and it is in libGL.a. So the > ordering of the libraries is wrong? Tried changing, but haven't found > somethint that works yet. This isn't an OpenGL problem anymore, it's a gcc usage problem. You're allowed forward undefined references in your library list, but not backward ones. You should make sure that a library that defines a particular symbol is specified *after* the libraries/object files using that symbol, that's all. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! Oh, boy, virtual memory! Now I'm gonna make myself a really *big* RAMdisk! -- /usr/games/fortune -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/