百度地图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和系统的一样就不能通过编译
改成其它名字就编译通过了。
网友评论