关于在VC++6.0中同时有多个main()文件时如何实现执行编译和运行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010276845/article/details/12153495

       今天突然想到了温习一下数据结构,结果发现遇到一个问题:在vc++6.0中新建了一个工程,添加了一个C++源文件,输入了一个算法程序,执行成功;但是我又想在这个工程下面继续添加一个源文件(同样含有main()函数)(为了以后要查看一起的文件,我不能删除之前那一个),继续执行,免得重新建立工程,(在VS2010里头有一个【设置为当前】,可以只允许单独一个,然而VC6.0没有。)

结果发现编译可以,但是连接不成功,报错提示如下:

eg2_1.obj : error LNK2005: _main already defined in eg2_2.obj
Debug/chapter2.exe : fatal error LNK1169: one or more multiply defined symbols found

这是为什么呢?

原因是main函数重定义。注意,程序是按照一个工程为单位进行编译,每个工程只能有且只有一个main函数,也就是只有一个函数入口。

那么我又想偷懒,不想再重新建立一个工程。否则每建立一个算法程序打开新的一个工程,这样做是不会死太麻烦了。那么我们可以怎样来解决呢?

【方法一】:最笨的方法,既然说是只能允许一个main()主函数入口,那么我在之前那一个里面用/*......*/注释掉不就可以了吗?不错,这样倒是一个解决方案。

【方法二】:从操作看来,方法一这样太麻烦了,假如有几十个文件或者更多,每次都是这样干,也太费事,浪费光阴和青春了吧?那么我们该怎么做呢?

                (1)在编好第2个新程序之后,在工程左边fileview里工程下的source files中,选中前一个带main函数的文件,点键盘的【Delete】键,删除该文件(其实只是从工程中移除出去,并没有删除,您可以打开该工程目录查看,它依然存在,只是不在VC6.0中显示了,表示已经不在该工程编译范围之内)。

                (2) 然后,执行VC6.0菜单命令“组建”→“清除”,

                 (3)再按F7或者编译快捷键,重新编译新建的C++程序。

这样,每个cpp文件(包括已移除的前main()文件)都留在当前工程所在目录中,而每次只有一个带main函数的cpp文件存在于工程当中执行。

是不是这样非常方便啦?但是你又会有疑惑了:那我想恢复到原来的那个文件呢?很简单,在工程左边fileview里工程下的source files中单击【右键】→选择【添加文件到当前目录】→选择需要导入到文件cpp,打开确认就可以把删除的文件导入进来。省心省事~~,先聊到这,以后有新技巧的发现,在一一分享!

****************************************************************************************************************************************************************************************

❤永葆一颗纯洁、宽容平和、仁慈谦卑和意气风发的心!

态度决定一切     努力改变命运 

展开阅读全文

没有更多推荐了,返回首页