You should check the options PUBLIC, PRIVATE, of the target_link_librairies. See: https://cmake.org/cmake/help/v3.7/command/target_link_libraries.html
transitive linking is achieved through PUBLIC or INTERFACE whereas PRIVATE does not propagate. AFAIU your shared lib should PRIVATEly target_link_librairies to your shared lib. Moreover the way you describe it suggest that your static libs may well be OBJECT libraries: https://cmake.org/cmake/help/v3.7/command/add_library.html#object-libraries Next time, posting some excerpt of your CMakeLists.txt would make it easier to answer with example. Eric Le 25 mars 2017 6:14 AM, "kipade" <kip...@163.com> a écrit : > In my cmake project, there are some subdirectories within it, and some of > them have to build as completed > static or shared libraries. > 1. The top project is executable > 2. a subdirectory is a shared project, which also have some subdirectoy > compile as static libraries which > of course should ONLY link into their parent shared library > I add link options to linking the shared library produced by its > subdirectory(which linked as a shared library), > but I found the all sub-static library with the shared library project(the > subdirectory) also double linked into > the top executable project. Of course I only want to link the shared > library. How to resolve such problem > for the top CMakeLists.txt? > > > > > -- > > 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/opensou > rce/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/cmake >
-- 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