我正在使用cmake的C ++项目中工作,对于某些目标,我们在构建时间膨胀方面遇到了问题。经过一番挖掘,我发现一些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是不必要的?