cmake_minimum_required(VERSION 3.0) project(bug_test) file(WRITE some_lib_1.c "") file(WRITE some_lib_2.c "") file(WRITE some_lib_3.c "") file(WRITE some_lib_4.c "") file(WRITE some_lib_5.c "") file(WRITE my_lib_shared.c "") add_compile_options(-fPIC) add_library(some_lib_1 STATIC some_lib_1.c) add_library(some_lib_2 STATIC some_lib_2.c) add_library(some_lib_3 STATIC some_lib_3.c) add_library(some_lib_4 STATIC some_lib_4.c) add_library(some_lib_5 STATIC some_lib_4.c) add_library(my_lib_shared SHARED my_lib_shared.c) target_link_libraries(some_lib_3 PUBLIC -Wl,-whole-archive some_lib_4 -Wl,-no-whole-archive # -Wl,-Qy,-no-whole-archive some_lib_5 ) target_link_libraries(my_lib_shared PUBLIC some_lib_1 -Wl,-whole-archive some_lib_3 -Wl,-no-whole-archive some_lib_2 )