包含/链接库PUBLIC或PRIVATE时,是否会对构建时间产生影响?

时间:2018-02-01 19:37:12

标签: build cmake

正如here所解释的那样,在现代cmake中,你应该将include / link目标设为私有。您的CMakeList.txt应该看起来像这样:

add_executable(myexe main.cpp)
target_include_directories(myexe PRIVATE ${mylib_include_dir})
target_link_libraries(myexe PRIVATE mylib)

如果我使用PRIVATEPUBLIC,关于构建时间会有所不同吗?

1 个答案:

答案 0 :(得分:1)

CMake部分主要反映您的C ++模块架构。

E.g。如果你有两个库,并且一个(B)包含一个派生自另一个(A)中的类的公共类,则包含类B的头将包含A类。这将反映在PUBLIC CMake中两者之间的依赖声明。

通过减少依赖性来优化代码/体系结构有很多积极的影响,包括。编译时间。关于效果的讨论,参见例如:

我在这里提到的一个常见主题通常是标题为“#34;通过减少标题依赖性来减少C ++构建时间”#34;。

<强>参考

相关问题