我想知道默认的target_link_libraries
隐私是什么。
我在CMake中添加了一行:
target_link_libraries(myTarget
libraryA
libraryB
)
但是我不知道它是PRIVATE
还是PUBLIC
还是INTERFACE
。
我检查了documentation,但看不到我的问题的答案:(
编辑:
我发现了sth:
最后一点,如果您调用target_link_libraries()而没有 指定PRIVATE,PUBLIC或INTERFACE中的任何一个,您可能会想 相信它将被视为PUBLIC。情况实际上是 比这更复杂。它可能被视为PUBLIC或 私有,取决于其他target_link_library()调用和/或 目标属性操作已执行。该文件 对于target_link_libraries()谈了一点,但是您必须 深入研究文档中提到的目标属性 了解什么情况导致PRIVATE或 公众行为。
什么情况? (顺便说一句。这句话的作者是Craig Scott,他似乎是SO的活跃用户,我相信他可以回答我...)
答案 0 :(得分:3)
对policy 0023的描述表明,target_link_libraries
没有没有“默认”行为-每个项目都应使用全关键字或无关键字调用此命令,关键字:
纯文本关键字和关键字target_link_libraries签名不能混合使用。