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