本文主要是介绍CMake PUBLIC / PRIVATE / INTERFACE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在使用Cmake时,经常会遇到以下两个命令
- target_include_directories
- target_link_libraries
它们的使用方法比较类似,例如
target_include_directories(<Target>PUBLIC <dirs>…PRIVATE <dirs>…INTERFACE <dirs>…
)
那么这三种添加头文件夹的方式有什么区别呢?
假如有一个库lib
,还有一个应用exe
,其中exe
依赖lib
lib
使用:
• PUBLIC,两个项目都会添加include
• PRIVATE,只有lib会添加include
• INTERFACE,只有exe会添加include
问题来了,什么情况下会用到INTERFACE?
其实一般在开发SDK时,都会合并头文件,然后供外部调用,这时这个合成的头文件只需要被外部访问
这篇关于CMake PUBLIC / PRIVATE / INTERFACE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!