对 Cocos2d-x 尺寸类型的引用不明确
Reference ambiguous to Cocos2d-x Size type
我想在 c++ 项目 中实现一些 objective c 调用,即我正在尝试做与“this question"(将某些特定文件编译为 objective c++)
但后来我遇到了这行代码的 "Reference ambigious" 错误:
Size visibleSize = Director::getInstance()->getVisibleSize();
说“对'Size'的引用含糊不清”
我当前的编译器设置:
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 都在其自己的命名空间中定义,因此您需要在有问题的文件中执行以下操作:
- 从实施文件的顶部删除
USING_NS_CC
。
将cocos2d::
命名空间添加到实现文件中的任何Cocos2d-x类型和class引用,例如:
cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
这会告诉编译器您指的是哪种 Size
类型。
另外 Cocos2d-x 支持 C++11 但据我所知不支持 C++14,因此请在构建设置中进行更改。
我想在 c++ 项目 中实现一些 objective c 调用,即我正在尝试做与“this question"(将某些特定文件编译为 objective c++)
但后来我遇到了这行代码的 "Reference ambigious" 错误:
Size visibleSize = Director::getInstance()->getVisibleSize();
说“对'Size'的引用含糊不清”
我当前的编译器设置:
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 都在其自己的命名空间中定义,因此您需要在有问题的文件中执行以下操作:
- 从实施文件的顶部删除
USING_NS_CC
。 将
cocos2d::
命名空间添加到实现文件中的任何Cocos2d-x类型和class引用,例如:cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
这会告诉编译器您指的是哪种 Size
类型。
另外 Cocos2d-x 支持 C++11 但据我所知不支持 C++14,因此请在构建设置中进行更改。