为什么Compile时可以成功,但是Build的时候就总说有错误
Linking...
2-3.obj : error LNK2005: _main already defined in 2-2.obj
Debug/Project.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Project.exe - 2 error(s), 0 warning(s)
//2_3.cpp
//比较两个数的大小
//分析:将两个数x和y进行比较,结果有3种可能性:x=y, x> y, x <y。因此需要进行多次判断,
//要用多重选择结构,这里我们选用嵌套的if...else语句。
//源程序:
//
#include <iostream.h>
void main()
{
int x,y;
cout < < "请输入 x 和 y 的值: ";
cin > > x > > y;
if (x!=y)
if(x> y)
cout < < "x> y " < < endl;
else
cout < < "x <y " < < endl;
else
cout < < "x=y " < < endl;
}
//运行结果1:
// 请输入 x 和 y 的值:5 8
//x <y
//运行结果2:
// 请输入 x 和 y 的值:8 8
//x=y
//运行结果3:
// 请输入 x 和 y 的值:12 8
//x> y
[解决办法]
看起来应该是你在同一个工程里面加了多个CPP,这些CPP都有自己的main,所以在Link阶段出错了,因为main是外部符号,不能有重复的。
Compile是编译.cpp/.c文件成.obj
Build会先Compile成.obj,再把.obj link成.exe/.dll,就是在这一步出错的(实际情况下Build作的事情会包括很多其他的步骤,可以自定义)
把你的多个CPP放在多个Project就好了