【问题标题】:error when include <list> in cocos2d project在 cocos2d 项目中包含 <list> 时出错
【发布时间】:2011-05-21 01:57:15
【问题描述】:

我想在 cocos2d 中包含列表。错误是:“文件/目录不存在”。我试图将我的文件类型(xcode4)更改为 objc++ 和 objc 甚至 c。但仍然无法正常工作。谁知道怎么修它?

#import <Foundation/Foundation.h>
#import "cocos2d.h"
#include <list>

#define POINT_LIMIT 50
#define USE_LAGRANGE 1

using namespace std;

inline float lagrange2(CGPoint p1, CGPoint p2, CGPoint p3, float x);
inline float lagrange1(CGPoint p1, CGPoint p2, float x);

inline void CGPointSet(CGPoint *v, float x, float y);
inline void f1(CGPoint p1, CGPoint p2, float d, CGPoint *o1, CGPoint *o2);
inline void f2(CGPoint p1, CGPoint p2, float d, CGPoint *o1, CGPoint *o2);

@interface CCBlade : CCNode {
    list<CGPoint> path;
    unsigned int pointLimit;
    int count;
    CGPoint vertices[2*POINT_LIMIT + 5];
    CGPoint coordinates[2*POINT_LIMIT + 5];
    BOOL reset;
@protected
    CCTexture2D *_texture;  
    float width;
}
@property unsigned int pointLimit;
@property(retain) CCTexture2D *texture;
@property float width;
- (void) push:(CGPoint) v;
- (void) pop;
- (void) clear;
- (void) reset;
- (void) dim:(BOOL) dim;
@end

【问题讨论】:

  • 错误信息:“列表:不存在这样的文件或目录”
  • 我尝试过早期版本的 cocos2d。但同样的问题。也许是项目设置或xcode 4设置?

标签: iphone objective-c xcode cocos2d-iphone


【解决方案1】:

奇怪但真实,修复编译错误的解决方案只是将#import该头文件的所有文件重命名为具有.mm文件扩展名。请试一试;)

【讨论】:

  • 我已经试过了。但仍然失败。文件包括(不导入)列表是 .h 文件。
  • @Fish vs Birds 您需要重命名所有包含/导入 .h 文件的 .m 文件...
  • 但是导入CCBlade.h文件的文件只有CCBlade.m和TouchTrailLayer.h文件。我已将 CCBlade.m 更改为 .mm,但仍然是同样的问题。我可以把我的项目发给你吗?
  • 好吧,我已将项目中的所有 .m 文件更改为 .mm 文件。现在可以了。只是好奇,但为什么呢?
  • @Fish vs Birds .mm 文件扩展名告诉编译器将文件编译为 Objective-C++ 而不是 Objective-C。我猜编译器只能在 C++ 模式下检测到正确的 STL 路径..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多