Date: Wed, 2 Mar 2005 14:55:30 -0600 From: Dan Nelson <dnelson@allantgroup.com> To: Andreas Davour <ante@Update.UU.SE> Cc: freebsd-questions@freebsd.org Subject: Re: Where do the linker look for shared libraries? Message-ID: <20050302205530.GB77052@dan.emsphone.com> In-Reply-To: <Pine.LNX.4.62.0503022058130.23271@Psilocybe.Update.UU.SE> References: <Pine.LNX.4.62.0503021922580.8625@Psilocybe.Update.UU.SE> <20050302191318.GA77052@dan.emsphone.com> <Pine.LNX.4.62.0503022058130.23271@Psilocybe.Update.UU.SE>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Mar 02), Andreas Davour said: > On Wed, 2 Mar 2005, Dan Nelson wrote: > >In the last episode (Mar 02), Andreas Davour said: > >>I've tried to compile and link a small game written with the > >>Allegro API. For some odd reason the linker just don't understand > >>how to resolve the symbols in the library. It just can't accept > >>that the library is in a ".so" file and not an ".a" archive, and > >>even when I point it out explicitly it still don't get it. > >> > >>This is my commandline: > >> > >>gcc main.o rotoAction.o rotoCog.o -o RotoCube.exe -lstdc++ -L/usr/local/lib/ -lalleg > >> > >>and the errors I get looks like this: > >> > >>/usr/local/lib//liballeg.so: undefined reference to `_poly_zbuf_atex_trans8' > >>/usr/local/lib//liballeg.so: undefined reference to `_poly_scanline_atex_mask_lit32' > > > >This is the linker saying "there are symbols in liballeg.so that I > >cannot find anywhere". Maybe you need to specify another library > >along with liballeg? Are you using the allegro port? > > I have grep'ed for those symbols and they come from liballeg.so, no > place else. That's one of the very confusing things with those errors. A web search on "undefined reference _poly_zbuf_atex_trans8" comes up with a couple hits, including a post that says you need to use the allegro-config command to determine the correct flags and libraries to link allegro. What does "allegro-config --libs" print? The demo programs built by the allegro port must work, so you could always build the port again and determine what flags it used. > I'm using the allegro port. BTW, there is a linux-allegro port as well. > Why is this needed if Allegro is a platform independant API? For linux programs that might need the library (same API, different ABI). I assume there's at least one in the ports tree somewhere. -- Dan Nelson dnelson@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050302205530.GB77052>