Sorry about the long subject,

My question is about the way cmake defines dynamic link library search paths for release builds of executables. I've got an executable, written in C++ that depends on a shared library within the same project. When I run ldd on that executable I get this output
ldd test1
   linux-gate.so.1 =>  (0xb7fab000)
   libPortal.so => ../src/libPortal.so (0xb7f9b000)
libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb7ea7000)
   libm.so.6 => /lib/libm.so.6 (0xb7e81000)
libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb7e76000)
   libc.so.6 => /lib/libc.so.6 (0xb7d46000)
   /lib/ld-linux.so.2 (0xb7fac000)

notice the libPortal.so path, it points to a local directory, yet libPortal is a release build. Why would cmake have a release build point to a local directory that wont exist on another users machine? Also, if the test1 exec was installed into /usr/bin and the .so into /usr/lib wouldn't that mean the exec would still point to ../src? If that's the case the src directory wouldn't exist. I expected cmake not to include any information on where to find the library and let the unix system handle that itself with environment variables for example. If this is acceptable behavior in a unix system, please let me know.

Thanks,
Chris.
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to