i make program using dynamic library, libexample.so. dynamic library depends on dynamic library, libtool.so.
it looks linker succeeded linking libexample.so because of message gcc.
building target: libexample.so invoking: gcc c++ linker g++ -l/home/takehiro/documents/documents/code/lib/tool -shared -o "libexample.so" ./classes/example.o ./classes/example_template.o ./classes/example_test.o ./classes/impl.o -ltool finished building target: libexample.so cp libexample.so /home/takehiro/documents/documents/code/lib/example
however, failed link libtool.so.
ldd /home/takehiro/documents/documents/code/lib/example/libexample.so ... libtool.so => not found ...
i checked existence of libtool.so under /home/takehiro/documents/documents/code/lib/tool pointed -l optoin @ above linker by
ls /home/takehiro/documents/documents/code/lib/tool libtool.so
this first time use dynamic library depending dynamic library. so confused. normal or malfunction? why cannot link them? have suggestion or solution me? glad it. thank much.
all -l
option tell linker shared library is, @ link time.
this not have effect on runtime loader searches shared libraries. that's why shared library fails loaded @ runtime.
you need pass -rpath
option linker, when you're linking shared library, in order set rpath
attribute on shared library, specifies dependencies searched for. like
g++ -l/home/takehiro/documents/documents/code/lib/tool \ -wl,-rpath=/home/takehiro/documents/documents/code/lib/tool \ ... remaining options
Comments
Post a Comment