[Nelug] ld and unit testing in C

Martin Ward martin at gkc.org.uk
Mon Sep 24 12:17:19 UTC 2007

On Monday 24 Sep 2007 12:54, Oliver Burnett-Hall wrote:
> Now, I was expecting to be able to produce an executable by doing this:
> # gcc check_ranges.o ../../src/.libs/ranges.o -lcheck -o check_ranges
> But this tries to find every undefined reference in ranges.o as well,
> giving me a ton of errors as I haven't included all of the
> libraries/object files that it requires.

Have you tried the option --unresolved-symbols=ignore-all
or --unresolved-symbols=ignore-in-object-files ?

This is what the man page to ld says:

           Determine  how to handle unresolved symbols.  There are four possi-
           ble values for method:

               Do not report any unresolved symbols.

               Report all unresolved symbols.  This is the default.

               Report  unresolved  symbols  that  are  contained   in   shared
               libraries,  but  ignore  them  if they come from regular object

               Report unresolved symbols that come from regular object  files,
               but  ignore  them if they come from shared libraries.  This can
               be useful when creating a dynamic binary and it is  known  that
               all  the  shared  libraries  that  it should be referencing are
               included on the linker's command line.

           The behaviour for shared libraries on their own can  also  be  con-
           trolled by the --[no-]allow-shlib-undefined option.

           Normally  the  linker  will  generate  an  error  message  for each
           reported unresolved symbol but the option --warn-unresolved-symbols
           can change this to a warning.


martin at gkc.org.uk http://www.cse.dmu.ac.uk/~mward/ Erdos number: 4
G.K.Chesterton web site: http://www.cse.dmu.ac.uk/~mward/gkc/

More information about the Nelug mailing list