Cocos2dx导入QuartzCore框架时出现(对Point、Rect、Size的引用不明确)错误

Cocos2dx importing QuartzCore framework gives (Reference to Point, Rect, Size is ambiguous) error

本文关键字:Size Rect 引用 错误 不明确 Point 框架 QuartzCore 导入 Cocos2dx      更新时间:2023-10-16

我正在使用c++开发一款cocos2dx游戏。当我将quartzcore框架导入头文件时,在构建后,它会给我20多个错误,说Point不明确。只有当我通过写"#import"导入石英文件时,才会出现错误。我已经在"链接与二进制"中链接了框架,所以不应该存在链接问题。任何帮助都将不胜感激。谢谢

如果您在cocos中开发c++游戏,则需要小心将Objective-c代码与c++代码进行分区。

要做到这一点,最简单的方法是只在.mm文件中使用#import(其中可以包含C++和Objective-C代码),以确保您无法在纯C++环境中获得Objective-C指令。

即便如此,如果您在c++代码中正确使用名称空间,则不应发生此错误:虽然Quartz框架-being Objective-c在全局名称空间中定义了"Point"等,但Cocos2d-x在Cocos2d名称空间中将其定义为Point。

因此,如果您将所有应用程序代码放置在一个名称空间内,并将cocos名称空间导入其中,您将避免出现全局名称空间冲突。

例如,在我的应用程序中,我在所有c++代码周围使用了一个名称空间,有点像这样:

namespace myapp {
  using cocos2d;
  class MyClass {
  public:
    Point cocosPoint;
    ::Point quartzPoint;
  };
}
相关文章: