我想在 c ++项目中实现一些目标c 调用,即我试图做与" this question"相同的事情。 (将一些特定文件编译为目标c ++ )
然后我进入"参考ambigious"这行代码的错误:
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)
答案 0 :(得分:0)
问题是Cocos2d-x中存在Size
类型,编译器看到的头文件中存在其他位置。
幸运的是,所有Cocos2d-x都在其自己的命名空间中定义,因此您需要在违规文件中执行以下操作:
USING_NS_CC
。将cocos2d::
命名空间添加到实现文件中的任何Cocos2d-x类型和类引用中,例如:
cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
它告诉编译器确切地指出了哪种Size
类型。
据我所知,Cocos2d-x也支持C ++ 11但不支持C ++ 14,所以在构建设置中更改它。