c++ - 对 Cocos2d-x 大小类型的引用不明确

标签 c++ objective-c cocos2d-x ambiguous

我想在 c++ 项目 中实现一些objective c 调用,即我正在尝试做与“this question”相同的事情(将一些特定文件编译为 Objective-C++)

但后来我遇到了这行代码的“引用不明确”错误:

Size visibleSize = Director::getInstance()->getVisibleSize();

说“对‘尺寸’的引用不明确

我当前的编译器设置:

C Lang Dialect : GNU99[-std=gnu99]
Compiler Sources As : According to File Type

C++ Language Dialect : GNU++14[-std=gnu99]
C++ Standard Library : libc++ (LLVM C++ standard library with c++11 support)

最佳答案

问题是 Size 类型存在于 Cocos2d-x 中以及编译器看到的头文件中的其他地方。

幸运的是,所有 Cocos2d-x 都在其自己的命名空间中定义,因此您需要在有问题的文件中执行以下操作:

  1. 从实现文件的顶部删除 USING_NS_CC
  2. cocos2d:: 命名空间添加到实现文件中的任何 Cocos2d-x 类型和类引用,例如:

    cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
    

这会准确地告诉编译器您指的是哪种 Size 类型。

据我所知,Cocos2d-x 支持 C++11 但不支持 C++14,因此请在build设置中进行更改。

关于c++ - 对 Cocos2d-x 大小类型的引用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325899/

相关文章:

objective-c - NSMutableDictionary KVO

android - 权限被拒绝打开 ligEGL 着色器缓存文件

c++ - 在 gradle 中配置 cpp 源

c++ - 将 ofstream 对象从主程序传递给类

c++ - upnp 从 openWRT 路由器发现 Philips hue

c++ - VC6编译错误

iphone - 如何在 iOS 4 中更改 iPhone 应用程序的首选语言

ios - 将 UIButton 中的图像缩放到 AspectFit?

c++ - Cocos2dx内存管理,如何使用析构函数以及何时释放对象?

android - jsb.reflection.callStaticMethod 不工作