Re: unresolved symbol with shared library
From: Rolf Magnus (ramagnus_at_t-online.de)
Date: 10/13/03
- Next message: parthan: "Help needed in running a c++ program as Windows Services"
- Previous message: Attila Feher: "Re: Amusing Microsoft C++ ad"
- In reply to: Oliver: "unresolved symbol with shared library"
- Next in thread: Oliver Otto: "Re: unresolved symbol with shared library"
- Reply: Oliver Otto: "Re: unresolved symbol with shared library"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 13 Oct 2003 13:12:17 +0200
Note that your problem is off-topic here. This newsgroup is only about
the C++ programming language as defined by the ISO, not about problems
with specific compilers/linkers.
Oliver wrote:
> Hi,
>
> I have a problem with a shared library of mine. I compile the *.o
> files and then generate the .so lib with:
> cc -shared libjava_vrpn.so *.o
> When I then run my program I get an error for an unresolved symbol.
>
> The symbols it's looking for are in another library called libvrpn.a,
> but for some unknown reason the compiler does not uses this library
> when I tell him to used.
> I compile the libs as before and then try:
> cc -shared -L../sgi_irix.../ -lvrpn -o libjava_vrpn.so *.o
> The compiler then comes with a waring that the libvrpn.a is not used
> for resolving any symbol and my application is still complaining about
> the first unresolved symbol.
>
> When use the command nm to check the library's I can see that the
> sybol could be resolved by using the libvrpn.a. What do I do wrong?
What happens is that the linker goes through the files you provided in
the order you specified. It maintains a list of unresolved symbols
internally. When it comes to -lvrpn, it sees that this archive cannot
be used to resolve any symbols (since there are no unresolved symbols
yet), throws it away and goes on. Later, your object files come and
need some external symbols (from that archive), which now are added to
the list of unresolved symbols. Those are never resolved, since there
is nothing after the .o files, so you get a linking error. Try
providing the archive _after_ the .o files.
- Next message: parthan: "Help needed in running a c++ program as Windows Services"
- Previous message: Attila Feher: "Re: Amusing Microsoft C++ ad"
- In reply to: Oliver: "unresolved symbol with shared library"
- Next in thread: Oliver Otto: "Re: unresolved symbol with shared library"
- Reply: Oliver Otto: "Re: unresolved symbol with shared library"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|