美文网首页
symbol(s) not found for architec

symbol(s) not found for architec

作者: 追梦小怪兽 | 来源:发表于2019-05-21 15:57 被阅读0次

如果你是在使用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 , 反正我的问题在这里就解决了,希望能帮到有需要的同学。
下面上一个我参考的连接来自大佬的帮助

相关文章

网友评论

      本文标题:symbol(s) not found for architec

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