[CMake] Help: erroneous '-ltbb' getting injected into link command implicitly

Ben Morgan bmorgan.warwick at gmail.com
Mon Oct 16 05:55:26 EDT 2017


Hi Chris,

Is “tbb” used as a target name and direct link anywhere? e.g.

add_library(tbb IMPORTED …) 

then somewhere else

target_link_libraries(foo PUBLIC tbb)

(you mentioned use of a config Cmake file)? One thing that bit me a while ago (but I don’t think 
it’s a CMake bug per se) is that if the target name doesn’t exist (e.g. package wasn’t found), then 
“-l<targetname>” is used.

If that is the case, then the solution is to namespace the target:

add_library(tbb::tbb IMPORTED …)

…

target_link_libraries(foo PUBLIC tbb::tbb)


That ensures full paths are used and that a diagnostic is emitted if the package/target
wasn’t found.

Cheers,

Ben.

> On 13 Oct 2017, at 00:21, Chris Green <greenc at fnal.gov> wrote:
> 
> Hi,
> 
> Using CMake 3.9.2, I'm trying to ascertain where an instance of '-ltbb' is getting injected into the link command line of some of our executables. This is bad because we can't find it anywhere in our source (we have a config CMake that uses the full path to the library), and the system TBB library is being picked up which is wrong (old version compiled with wrong compiler to wrong C++ standard). I have verified that we have no explicit use of '-ltbb' anywhere, and also that LIBRARY_PATH is not being set in the environment. Two questions arise:
> 
> How can I trace what is going into the link.txt files, and whence?
> Are there any remaining mechanisms for explicit conversion from X/Y/Z/libQ.so to -lQ that I'm unaware of?
> It should be noted as a matter of form that the link.txt contains a *whole* lot of stuff that wasn't explicitly put there by the target_link_libraries() command, and that turns out to be superfluous.
> 
> Any help in this matter would be gratefully received, because too much of this is currently a black box to me and I'm lost.
> 
> Thanks,
> 
> Chris.
> -- 
> 
> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20171016/2d908c99/attachment.html>


More information about the CMake mailing list