C++文件包含发生多重定义符号错误问题

2025-12-15 02:56:56
推荐回答(3个)
回答1:

//12.cpp

#include
using namespace std;
void mb(int a) {cout<
//11.cpp
#include"12.cpp"
int main()
{
int a=12;
mb(a);
return 0;
}

和a的定义没关系。
你的mb函数在11中定义,在11.cpp中会编译一次;
你把11包含到22.cpp中,它会再编译一次,就会导致有两个mb函数的定义。

所以,你应该做的就是,把mb函数的声明,放在11.h文件中,11.cpp和22.cpp都包含11.h即可。

请搞清楚“声明”和“定义”的具体含义。

回答2:

将12.cpp从当前项目中移出估计就可以了。

回答3:

变量a被定义了两次,文件包含最好做出头文件,在头文件中做相关声明即可