This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MESA


On Wed, 19 Feb 2003, Mikael Åsberg wrote:

> ----- Original Message -----
> From: "Igor Pechtchanski" <pechtcha at cs dot nyu dot edu>
>
> > On Wed, 19 Feb 2003, Mikael sberg wrote:
> >
> > > ----- Original Message -----
> > > From: "Igor Pechtchanski" <pechtcha at cs dot nyu dot edu>
> > >
> > > > On Wed, 19 Feb 2003, Mikael sberg wrote:
> > > >
> > > > > ----- Original Message -----
> > > > > From: "Igor Pechtchanski" <pechtcha at cs dot nyu dot edu>
> > > > >
> > > > > > On Wed, 19 Feb 2003, Mikael sberg wrote:
> > > > > >
> > > > > > > ----- Original Message -----
> > > > > > > From: "Igor Pechtchanski" <pechtcha at cs dot nyu dot edu>
> > > > > > > [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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]