我的项目要引入两个第三方类库,一个要object 编译能通过,另一个要object-c++编译才能通过,但这两种语言才编译器中只能选一种,但是两个类库无论你改了哪个都报错,该怎样解决?
用C编译的库用OC,用C++编译的库用OC++,为了避免冲突,最好将Compile Sources As设置为"According to File Type",将需要用到C++编译的
库的m文件改名为mm,Objective-C天然支持C语言混编,只是对C++不怎么友好。注:使用"According to File Type"时,需要将C方言设置为GUN89
或者更高(再说C89的标准有些确实比较恶心),不然系统自带的OC库会编译不通过。
附图:
附带一些静态库编译说明:
编译静态库时,如果含有cpp文件,则必须使用"According to File Type"或者Objective-C++来编译静态库。用户在使用库时,如果没选"According to File Type"或者是Objective-C++编译会不通过的,使用Objective-C++则不需改后缀,使用"According to File Type"则需要改后缀。"According to File Type"方式灵活,Objective-C++则限制了整个工程。
希望我上面的回答应该对你有所帮助!