static library and undefined reference

Iker Arizmendi
Fri Apr 9 03:46:00 GMT 2004

After reading a helpful post on the topic which describes
that linker will "throw away" a library if it comes across
it but none of the symbols it defines are needed, I realized
that my link line was wrong. The problem was not between
my executable and my library but between my two libraries.
I had placed the "depended on" library first thinking that
the symbols should be available when they were needed (which
explains why I got errors when my executable's .o was placed
before or after the libraries).


Iker Arizmendi wrote:
> Just a quick follow up - when I put the static libraries
> _after_ the executable's .o file I get _more_ undefined
> reference errors.
> Iker
> Iker Arizmendi wrote:
>> Hello all.
>> I have a project that creates several static libraries
>> in two directories and an executable that uses them in
>> a third. The libraries build just fine, and the
>> executable builds fine, but fails during linking with
>> "undefined reference" errors. I've checked the libraries
>> with nm and can see that the symbols the linker claims
>> are undefined are exported (nm shows marks them with
>> a "T"). I've checked that the link line includes the
>> libraries and that libraries that are depended on by
>> other libraries appear first (and before the executable's
>> .o file). I also made sure that all the files involved
>> were compiled with g++ and not gcc. But the errors persist.
>> What am I missing here? Any help greatly appreciated.
>> Regards,
>> Iker

More information about the Gcc-help mailing list