From owner-freebsd-questions@FreeBSD.ORG Wed Mar 2 20:55:33 2005 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 17FBD16A4CE for ; Wed, 2 Mar 2005 20:55:33 +0000 (GMT) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8F47143D39 for ; Wed, 2 Mar 2005 20:55:32 +0000 (GMT) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.13.1/8.13.1) id j22KtUBb030822; Wed, 2 Mar 2005 14:55:30 -0600 (CST) (envelope-from dan) Date: Wed, 2 Mar 2005 14:55:30 -0600 From: Dan Nelson To: Andreas Davour Message-ID: <20050302205530.GB77052@dan.emsphone.com> References: <20050302191318.GA77052@dan.emsphone.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-OS: FreeBSD 5.3-STABLE X-message-flag: Outlook Error User-Agent: Mutt/1.5.8i cc: freebsd-questions@freebsd.org Subject: Re: Where do the linker look for shared libraries? X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2005 20:55:33 -0000 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