Я работаю над проектом C ++, использующим cmake, и у нас возникают проблемы с завышенным временем сборки для некоторых целей. После некоторых копаний я обнаружил, что ненужные библиотеки перечислены в некоторых из target_link_libraries
.
В следующем примере main зависит от A, который зависит от B, поэтому, когда main компилируется, A и B также собираются.
add_library(A STATIC a.c)
add_library(B STATIC b.c)
target_link_libraries(A B)
add_executable(main main.c)
target_link_libraries(main A)
Однако A не содержит никаких файлов из B, поэтому его не нужно указывать в target_link_libraries
. Есть ли способ обнаружить, что B не нужен?