默认的target_link_libraries隐私设置是什么

What is default target_link_libraries privacy setting?

本文关键字:隐私 设置 是什么 libraries link target 默认      更新时间:2023-10-16

我想知道默认的target_link_libraries隐私是什么。

我在CMake:中添加了一行

target_link_libraries(myTarget
libraryA
libraryB
)

但我不知道是PRIVATE还是PUBLIC,或者可能是INTERFACE。我查看了文件,但我看不到问题的答案:(

编辑:

我发现了什么:

最后,如果您调用target_link_libraries((而不指定PRIVATE、PUBLIC或INTERFACE中的任何一个,您可能会想相信它将被视为公开。事实上但比这更复杂。它可能被视为公共或PRIVATE,取决于其他target_link_library((调用的内容和/或已经执行了目标属性操作。文件对于target_link_libraries((,我们谈了一些这方面的内容,但您必须深入研究它提到的目标属性的文档了解什么情况导致PRIVATE或公众行为。

什么情况(顺便说一句,这句话的作者是Craig Scott,他似乎是SO的活跃用户,我相信他可以回答我…(

策略0023的描述表明,target_link_libraries不存在"默认"行为-每个项目都应该有对该命令的调用,无论是全关键字还是无关键字:

不能混合使用普通签名和关键字target_link_libraries签名。