函数被重复声明,链接类型不一样,编译报错。


怎么办?

一个在a.h里面声明,一个在b.h里面声明。
两个函数,原型一样,一个用extern "C" 包围,一个没有,

报错如下:
    error: previous declaration of ‘int oitea_auth(int, char*, int, char*)’ with ‘C++’ linkage
/data/home/nemo/code/isd_qzoneappbase_proj/outerlib/panel_auth/include/panel_auth.h:78: error: conflicts with new declaration with ‘C’ linkage

解决:
将两个头文件被包含的先后顺序颠倒下即可。
#include "a.h"
#include "b.h"

==>
#include "b.h"
#include "a.h"

你可能感兴趣的:(c)