美文网首页
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