[CMake] How is the linker language of a library determined?
Robin Verschueren
robin.verschueren at gmail.com
Tue Nov 7 18:29:27 EST 2017
Hi there,
I'm building some C code into a library. The library needs to link to a C++
static library (IMPORTED target). I'm puzzled by the following:
- with BUILD_SHARED_LIBS=OFF (default), everything works as expected and
CMake sees the C library as a "C++ library" (i.e. it uses the C++
compiler/linker to link the two libraries together into a static library).
- with BUILD_SHARED_LIBS=ON however, CMake tries to link the C library
to the C++ library with cc (clang in my case), and I get linker errors.
My questions:
*What mechanism does CMake use to determine the linker language, and why is
it different in these two cases?* Is it because I want to link a shared
library against a static library as opposed to two static ones? Or is
BUILD_SHARED_LIBS a red herring? Does CMake have a notion of what linker
language to use for IMPORTED targets?
I'm looking forward to your answer,
Robin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20171107/4073a492/attachment.html>
More information about the CMake
mailing list