名人说:博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
本篇文章收录于:各类问题记录专栏
@TOC
一、原因经过
由于在一个项目中创建了两个源文件,在运行第二个源文件时,报了以下错误,

即:当VS中一个项目下有两个及以上的源文件时,编译会产生错误:main已经在xxxx.obj中定义,找到一个或多个多重定义的符号。于是四处寻找解决办法,总结如下。
二、解决方法
1️⃣方法一 注释
将暂时不使用的源文件的main函数注释掉,例如想要运行2.cpp时,将1的主函数用” // “ 或者 “/ * * /“注释符注释掉。

如图,注释之后,已经可以正常运行使用了

2️⃣方法二 生成排除
将不需要编译的源文件进行生成排除:右键—>“属性”,将“从生成中排除”选择—>“是”,保存后再运行需要运行的源文件就可以成功,且被排除的文件右下角会有标记。





如图,无注释1.cpp的main函数状态下,仍然可以运行成功。

3️⃣方法三 直接排除
右键对应源文件,选择“从项目中排除”,之后项目中不会见到该源文件,例如将1.cpp排除,之后运行2.cpp

排除之后,可以发现只剩2.cpp了

运行如图:

看到这里有小伙伴可能会有疑问,那1.cpp是被删除了吗?
实际上没有被删除,只是说,你在这里看不见了,不代表它直接从根目录删除了。
如图可见,并没有被删除,在根目录,文件依然是存在的,想要使用再添加到项目下就行了。

4️⃣方法四 新建一个项目
如果是两个根本并不相关的程序,不妨新建一个项目,将其中一个程序放到新建的项目里,这样就不会产生所谓的重定义问题了,不过这样可能会有些费工夫。



创建源文件,之后点击运行,如图,程序成功运行。

5️⃣方法五 换devc++或其它编译器
VS目前使用起来是偏工程项目型的,但是UI、编译等体验确实不错,不过如果觉得以上步骤比较麻烦,可以考虑比较简洁的devc++,devc++在使用时一般不会出现此类问题,当然其它类似的软件也是可以的,方便使用就行。

三、总结收获
在遇到问题时,不要怕麻烦,解决它往往才是最便捷的路径。
最后,以此句作尾,走遍世间萧瑟与繁华,愿你仍能保持一颗热忱的心!
很感谢你能看到这里,如有相关疑问,还请下方评论留言。
**Code_流苏(CSDN)**(一个喜欢古诗词和编程的Coder😊)
问题解决时间记录:2023/4/8