C++ previous declaration of.with 'C++' linkage

来源:互联网 发布:如何设置电子狗数据 编辑:程序博客网 时间:2024/04/29 16:18

转自:http://www.educity.cn/wenda/287645.html


C++ previous declaration of...with 'C++' linkage

在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,这是因为C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。

但有时还会出现 :

error: previous declaration of 'int function(int)' with 'C++' linkage

 error: conflicts with new declaration with 'C' linkage

这是因为在c++的文件中用extern定义过了函数,而又包含了该函数所在的.h文件头文件,只要把.h文件引用删除即可



0 0
原创粉丝点击