名人说:博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
创作者:Code_流苏(CSDN)
本篇文章收录于:各类问题记录专栏
记录
- 一、原因经过
- 二、解决方法
- 1️⃣方法一 注释
- 2️⃣方法二 生成排除
- 3️⃣方法三 直接排除
- 4️⃣方法四 新建一个项目
- 5️⃣方法五 换devc++或其它编译器
- 三、总结收获
一、原因经过
由于在一个项目中创建了两个源文件,在运行第二个源文件时,报了以下错误,
即:当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++在使用时一般不会出现此类问题,当然其它类似的软件也是可以的,方便使用就行。
devc++下载地址
三、总结收获
在遇到问题时,不要怕麻烦,解决它或许才是所谓最便捷的路径。
最后,以下图作结尾,走遍世间萧瑟与繁华,愿自己仍能保持一颗热忱的心!
很感谢你能看到这里,如有相关疑问,还请下方评论留言。
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
问题解决时间记录:2023/4/8