symbol(s) not found for architecture arm64

如果你是在使用C++调用C 的时候报了这个错误,那么这篇文章可能会解决你的问题。
反正我是花了一点时间去解决。

  • C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。

  • 在C的.h文件中顶部加入以下代码

#ifdef __cplusplus

#if __cplusplus

extern "C"{
    
#endif
    
#endif /* __cplusplus */
  • 在C的.h文件中#endif 后面加入以下代码
#ifdef __cplusplus
    
#if __cplusplus
        
}

#endif

#endif /* __cplusplus */

OK , 反正我的问题在这里就解决了,希望能帮到有需要的同学。
下面上一个我参考的连接来自大佬的帮助

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容