如何防止名称空间与现有库碰撞

How to prevent name space collision with existing libraries

本文关键字:碰撞 空间 何防止      更新时间:2023-10-16

我想创建一个新的库,并希望确保我不会重复使用另一个库已使用的名称空间。通过名称空间,我的意思是主要是一个C 名称空间,但是理想情况下也应避免使用GNU Scientific Library和指南支持库之间的缩写词。

也应避免。

确定是否已经使用了名称空间的合理方法是什么(除了搜索" C "以外)?

编辑:
要澄清:我知道没有办法确定我的名称名称是独一无二的,甚至更少,它将保持独特。我正在寻找的技巧是最大程度地减少与常用的库和/或库发生碰撞的机会,这些库和/或库是某些环境中Defatso标准的机会(例如,我对Mac/ios/ios/android特定的特定图书馆一无所知)。br>是的,我可以使用my_ridiculously_long_but_unique_namespace_name_xy5md4,但是如果您想在标题文件中使用它,那不是很实际。

确定是否已经使用了名称空间的有效方法是什么(除了搜索" C ")?

没有。拥有一个人需要一个中央存储库(以及每个C 源代码管理它的中央当局!),我们很幸运没有任何(这是一场噩梦),并且会限制我们的自由)。

实践中,务实。为您的C 项目找到一个好的,不太短,很少使用的名称,并为您的C 名称空间使用(或与之相关的内容)。如果您打算为Linux编码免费的软件库,请检查您的推定名称是否不是您喜欢的Linux发行版中某些现有软件包的名称(例如在Debian中)

例如,mikematrixinversionmi更好。

例如,如果您将项目作为免费软件在GitHub上放置,则可以检查您的初始项目名称是否(经常)使用,并将该GitHub项目名称用作名称空间。

(实际上,您担心的太多。您的项目更有可能被忽略,而不是与其他名称相撞)

在评论中,您提到

是否有一些方法可以轻松搜索Ubuntu存储库中的所有库?

不,afaik。但是,您可能会在编译器插件或扩展程序上方构建某些内容(La GCC熔体);这将花费您多年的工作。人们确实在其Ubuntu系统上安装了一些外部库,因此您需要搜索更多(比Ubuntu所包含的内容),如果Ubuntu或Debian足够大,可以已经有冲突的库。

但是,请查看软件Hereitage项目。顺便说一句,在整个Linux分布中搜索名称和其他相似性或类比(使用静态源代码分析)是一个非常有趣的研究项目。还要查看渗水仪和跨米诺项目(均为欧洲资助)。

专业,我打算提交与未来ICT18 H2020欧洲电话相关的东西(2018年4月)。如果您在欧洲并有兴趣,请与我联系。

是的,我可以使用my_ridiculously_long_but_unique_namespace_name_xy5md4,但是如果您想在标题文件中使用它,那不是很实际。

这是实用的(您需要在编辑器中良好的自动完成)。正如SP2Danny所说的那样,您可以拥有名称空间别名,并且还可以拥有预处理器宏。