【发布时间】:2010-06-28 02:18:53
【问题描述】:
我正在将一个项目从 Linux 迁移到 Xcode,但遇到了“版本”问题..
我需要在编译时为我的动态内容创建一个唯一标识符,在 linux 上我使用的是 __ COUNTER__ 预处理器,但 Xcode 中使用的 gcc 4.2 似乎还不知道 __ COUNTER__...
所以,我想知道我能做些什么来解决这个问题?
我可以通过使用 macports.org 或类似的东西将 GCC 升级到 4.3(它理解 __ COUNTER__)...我在 OSX 上非常菜鸟,在 linux 上不太好 =[
或者找到另一种方法来实现这一点,在这种情况下,一种方法给函数/变量一个唯一的标识符。我尝试使用 __ LINE__ 但几天后,您最终会在不同文件的同一行上声明内容,并且使用它并没有那么高产......
感谢任何帮助!
谢谢,
乔纳森
【问题讨论】:
-
您要解决什么问题?我从来没有真正看到需要单个翻译单元之外的唯一标识符的计数器宏有什么好的用途。
-
我需要对项目中使用的所有类进行编目,因此可以在工厂内动态创建这些类,因此,我得到的唯一解决方案是声明一个值类变量它的初始化会将这个新的类声明添加到工厂列表中,这都是动态的,使用 lib 的程序员只需使用预处理器声明该类,它将被自动编目并可以在之后动态使用
-
怎么样 ((md5sum(_FILE_)+__LINE__) ?(如果需要,请填写您最喜欢的字符串哈希码算法,而不是 md5sum)
标签: c++ xcode gcc uniqueidentifier counter