【发布时间】:2022-01-02 02:42:39
【问题描述】:
当我看到带有命名空间的 CMake 库时,它们总是采用以下形式
Parent::Component.
如果我有一个足够大的库,则该库的某些子部分可能包含组件。我想知道是否有可能/适合做类似ParentProject::Subgouping::SpecificComponent 或更真实的例子Raytracing::Math::Utils。
简而言之,我可以在 CMake 库名称中使用多个命名空间吗?如果可能的话,这是个好主意吗?
【问题讨论】:
-
"我可以在一个 CMake 库名称中使用多个命名空间吗?" - 我看不到任何可以阻止这种用法的东西。你试过这样做吗?从技术上讲,除了简单的自检之外,CMake 不会以特定方式处理
::。 “当我看到带有命名空间的 CMake 库时,它们总是采用Parent::Component的形式。” - 更准确地说,模式是Package::LibraryName。冒号之前的部分表示包,(不是“父”项目或其他),冒号之后的部分是库(不是“组件”)。跨度> -
@Alec 请注意,即使使用 47 个组件进行提升也不会尝试做这样的事情。最好避免使用额外的“命名空间”并使用不同的分隔符:
Raytracing::Math_Utils。不确定某些生成器/编译器/cpack 生成器是否可能存在问题,如果您不将自己限制在单个::...
标签: cmake namespaces