什么是默认的 target_link_libraries 隐私设置?

Bar*_*kPL 12 c++ cmake

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

我在 CMake 中添加了一行:

target_link_libraries(myTarget
        libraryA
        libraryB
        )
Run Code Online (Sandbox Code Playgroud)

但我不知道是不是PRIVATEPUBLIC或者可能INTERFACE。我检查文档,但我没有看到我的问题的答案:(

编辑:

我发现某事

最后要注意的是,如果您调用 target_link_libraries() 并且没有指定任何 PRIVATE、PUBLIC 或 INTERFACE,您可能会认为它将被视为 PUBLIC。然而,情况实际上比这更复杂。它可以被视为 PUBLIC 或 PRIVATE,具体取决于已执行的其他 target_link_library() 调用和/或目标属性操作。target_link_libraries() 的文档对此进行了一些讨论,但您必须深入研究它提到的目标属性的文档,以了解哪些情况会导致 PRIVATE 或 PUBLIC 行为。

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

Tsy*_*rev 9

说明政策0023所暗示的,有没有“违约”行为target_link_libraries-每一个项目应该有这个命令调用要么全keyworded或无-keyworded:

不能混合使用纯文本和关键字 target_link_libraries 签名。