[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