iOS使用百度地图SDK,更改.mm文件后编译出错

2015-12-17  本文已影响2179人  陈鸿禧

百度地图SDK的文档里有这么一条

1、静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将Xcode的Project -> Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As设置为"Objective-C++"

所以我就将用到百度地图SDK的随便一个文件的后缀改成.mm

Command + Run

OHHHHHHHHHHH,编译失败

nsobjcruntime.h  这个文件狂报错

在Compile Sources As那里纠结了好久,不管改成什么还是报错

最后一个一个报错信息点进去看....真相大白

我有一个宏定义

//日志打印

#if LOGOPEN

#define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);

#else

#define NSLog(FORMAT, ...)

#endif

NSLog和系统的一样就不能通过编译

改成其它名字就编译通过了。

上一篇下一篇

猜你喜欢

热点阅读