我想在 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 都在其自己的命名空间中定义,因此您需要在有问题的文件中执行以下操作:
- 从实现文件的顶部删除
USING_NS_CC
。 将
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/