On Wed, Sep 17, 2014 at 12:58 PM, Nils Gladitz <nilsglad...@gmail.com>
wrote:

> On 09/17/2014 12:29 PM, Volker Pilipp wrote:
>
>> I have encountered the following problem with cmake 3.0.1.
>> Under certain circumstances TARGET_LINK_LIBRARIES replaces
>> "/path/to/libXXX.so" by "-lXXX". The problem occurred when I used a
>> non-standard compiler at /opt/XXX/bin/g++ and added the library
>> /opt/XXX/lib/libXXX.so to TARGET_LINK_LIBRARIES.
>> In particular CMakeLists.txt reads:
>>
>> "SET(CMAKE_CXX_COMPILER /opt/XXX/bin/g++)
>> CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
>> PROJECT(XXX)
>> add_executable(xxx xxx.cpp)
>> target_link_libraries(xxx /opt/XXX/lib/libXXX.so)"
>>
>> When running make VERBOSE=1 produces output like
>>
>> /opt/XXX/bin/g++ (...) -lXXX
>>
>> which is not the same as
>> /opt/XXX/bin/g++ (...) /opt/XXX/lib/libXXX.so
>>
>
> I think CMake reverts to linking by name if either the library is in an
> implicit linker directory (e.g. a directory the linker searches by default)
> or if the shared library does not have an SONAME.
>
> Which library does -lXXX resolve to?
> e.g. why aren't the two command lines equivalent for you?
>

-lXXX stands in the actual case for libcurl.so. I have both
/usr/lib4/libcurl.so.3 and /opt/XXX/llib/libcurl.so.4 installed and I want
my program to be linked against the latter one.


>
> Specifically which library does the linker (ld) pick up;
> not the runtime loader (ld.so).


An ldd on the executable produces
libcurl.so.3 => /usr/lib64/libcurl.so.3

Depending on LD_LIBRARY_PATH, (or rpath,...)  I would have expected
something like this
libcurl.so.4 => NOT FOUND
or
libcurl.so.4 => /opt/XXX/lib/libcurl.so.4

Volker




>
>
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to