Am 18. Juli 2017 18:02:40 MESZ schrieb Eric Noulard <eric.noul...@gmail.com>:
>2017-07-17 17:31 GMT+02:00 Robert Dailey <rcdailey.li...@gmail.com>:
>
>> Suppose I have the following:
>>
>> ```
>> add_library( A STATIC ${files} )
>>
>> add_library( B SHARED ${more_files} )
>> target_link_libraries( B PUBLIC A )
>>
>> add_library( C STATIC ${even_more_files} )
>> target_link_libraries( C PUBLIC B )
>>
>>
>> add_executable( D ${exe_files} )
>> target_link_libraries( D PRIVATE C )
>> ```
>>
>> Does the linker command for target `D` ever see target A's static
>link
>> library? I'm hoping the only thing the linker gets is `libB.so` and
>> `libC.a`, without `libA.a`.
>>
>
>I guess it does otherwise you may be missing symbols.
>As explain by Peter some time ago:
>  https://cmake.org/pipermail/cmake/2017-April/065347.html
>when you
>target_link_libraries( B PUBLIC A )
>
>with A being STATIC you do not really link A into B (which is shared in
>your example)

You confused PUBLIC and INTERFACE in your response.
target_link_libraries( B PUBLIC A ) DOES link A into B but only the symbols 
needed by B.

The link to the old post has it all right.

HS


-- 
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
-- 

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