gpt4 book ai didi

cmake - CMake 中的嵌套库命名空间

转载 作者:行者123 更新时间:2023-12-04 16:56:49 29 4
gpt4 key购买 nike

当我看到带有命名空间的 CMake 库时,它们总是在表单中Parent::Component .
如果我有一个足够大的库,那么该库的子部分可能包含组件。我想知道是否可以/适合做 ParentProject::Subgouping::SpecificComponent 之类的事情或者更真实的例子 Raytracing::Math::Utils .
简而言之,我可以在 CMake 库名称中使用多个命名空间吗?如果可能,这是一个好主意吗?

最佳答案

In short, can I use multiple namespaces in a CMake library name?


是的。冒号 ( : ) 就像 CMake 目标名称中的任何其他字符一样。然而, target_link_libraries命令将解释任何包含 :: 的参数以其名称作为适当的 CMake 目标,而不是作为潜在的系统库。因此,如果您输入错误的目标名称或它不存在,您将在配置时收到一个有用的错误,而不是一个损坏的构建。
有多个 :: 的实例在名称中的行为与只有一个相同。

If it is possible, is it a good idea?


这与 C++ 中的嵌套命名空间一样好。如果有道理,就去做。唯一的细微差别是 CMake 没有 using namespace等价的,所以他们打字不太方便。
在我的几个项目中,我使用了类似 Project::Tools:: 的命名空间。保存为了交叉编译而需要单独构建的任何构建时工具(如自定义代码生成器)(当 CMAKE_CROSSCOMPILING_EMULATOR 不是一个选项时)。

关于cmake - CMake 中的嵌套库命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70083716/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com