Cocos2dx导入QuartzCore框架时出现(对Point、Rect、Size的引用不明确)错误
Cocos2dx importing QuartzCore framework gives (Reference to Point, Rect, Size is ambiguous) error
我正在使用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;
};
}
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 大于65535的C++数组[size]引发不一致的溢出
- 为什么(-1)%vector::size()总是返回0
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- vector.size() 在比较中意外工作
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- 返回 str vs. str.substr(0,str.size()) 在 leetcode 中给了我不同的输出
- 为什么 GCC 不能假设 std::vector::size 在这个循环中不会改变?
- 为什么"(!v.empty())"比"(v.size() >0)"好?
- 迭代器库中的 std::size() 不适用于传递给函数的 C 样式数组
- std::string.size() 未知行为
- 为什么gmp会在这里与"invalid next size"重新定位一起崩溃?
- 为什么我会"Invalid read of size 8"?(瓦尔格林德)
- 从 std::string 到 std::array<char,size> 的 memcopy 额外数据是否是一种未定义的行为?
- 使用 std::size 来自非 const 上下文
- "fast"或"normal"在"free(): invalid next size (fast)"中是什么意思?
- Cocos2dx导入QuartzCore框架时出现(对Point、Rect、Size的引用不明确)错误