Mail Archives: djgpp/1997/12/22/11:32:48
Petr Mrazek wrote:
> Hi,
> I had this problem:
>
> Module foo.c contains only int main(void).
> Module libfoo1.c contains function for example void foo1(void)
> Module libfoo2.c function void foo2(void)
>
> I create libraries libfoo1.a and libfoo2.a then add them to project
> foo with module foo.c.
>
> 1. All works fine when main calls foo1 and/or foo2 and this foos don't
> call another foo (from other library) like this:
> main -> foo1
> \-> foo2
>
> 2. But when I want to call foo1 from main and foo2 from foo1 linker says
> "unresolved external foo2" or something like this.
> ( main -> foo1 -> foo2 )
>
> All works fine when both foo1 and foo2 are in one library.
>
> Is it bug of linker?
>
Linker searches for functions in libraries ONLY ONCE. So, in order to enable
functions from the second library to call functions from the first one, you have
to use the following command line:
gcc <flags and objects here> -lfoo1 -lfoo2 -lfoo1
Gregory
- Raw text -