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

Reference ambiguous to Cocos2d-x Size type

本文关键字:引用 不明确 类型 小类 Cocos2d-x      更新时间:2023-10-16

我想在c++项目中实现一些目标c调用,即尝试做与"这个问题"相同的事情(将一些特定文件编译为目标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,所以在构建设置中进行更改。