美文网首页iOS我爱编程
iOS开发之漫谈OC、C、C++混编

iOS开发之漫谈OC、C、C++混编

作者: KODIE | 来源:发表于2017-09-07 09:41 被阅读0次

导读

混编ObjectiveC++

正题

今天主要讲一下OC与C和C++混编的问题

首先说一下C++文件:
Snip20170907_151.png

单独把C++文件导入到文件中只要语法没有错误,是能够正常编译的,但是如果你要调用这个C++文件的函数或者对象的方法就会报错,报如下错误:

Snip20170907_149.png

这个错误很经典,解决办法就是在调用C++函数或者对象方法的所在OC文件(.m)将后缀.m改成.mm即可。

其次说一下C文件

如果我们在同一个.m文件中调用了调用了C++又调用了C函数,那么这也会报上述的错误,那么该如何解决呢?
解决办法:
先将此文件改成.mm,然后创建一个继承自NSObject的类文件,在此类文件中调用C语言函数,然后再在需要.mm文件中所需调用C的位置再调用继承自NSObject的类方法或者对象方法即可。

总结

  • 在 OC 中调用 C++ 代码时,需要将 OC 代码所在的 .m 文件后缀名修改为 .mm。
  • 在 OC 的 .mm 文件中调用 C 代码,需要将 C 代码所在的文件后缀名(通常为 .c)修改为 .mm,或者建一个中间的OC类调用C代码即可。
  • 有时候可能需要在 Build Settings -> Other Link Flags 添加 -lstdc++。
  • 甚至可能需要导入C++系统库libstdc++.tbd

以上!!!

弹钢琴.gif

相关文章

网友评论

    本文标题:iOS开发之漫谈OC、C、C++混编

    本文链接:https://www.haomeiwen.com/subject/rgwbjxtx.html