转自: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文件引用删除即可