原来是主函数问题——聪明反被聪明误

来源:互联网 发布:js单双引号转义 编辑:程序博客网 时间:2024/04/29 19:52

今天上机课,教学生使用VC6.0编译系统,叫他们把课本的三个小例敲进去。

 

本来可以建独立的简单工程或者空工程,然后再填代码,这样来的话,就是三个工程,本来也应该这样做的。

结果为了减少工程量,我就教他们建一个空工程,再建源程序文件,再把三个小例子分别敲到三个源程序文件里面去。

也就是,结果是一个工程,里面包含三个源文件。

 

学生运行第一个CPP文件没有问题,链接第二个就开始出问题了。我过去一检查,程序代码没错,看下错误提示如下:

Debug/111.exe : fatal error LNK1169: one or more multiply defined symbols found

 

我只瞄了下1169错误,大概知道是什么重复定义之类的,但是当时一时还没有反应过来,只是跟他们讲说,把三个源文件拆开到三个工程里去吧,这样就不会有错了,事实上也是这样的,拆开之后就没有问题了。

 

这个错误一直困扰我到下课回到寝室,我突然之间明白了。

再把之前教学生的方法重新做一遍,看了一下链接错误提示,原来上面还有一句:

2.obj : error LNK2005: _main already defined in 1.obj

这下真相大白了。

 

哎,枉我还自作聪明,把最基本的东西忘记了,每个工程里面主函数只能有一个,而这三个小例子都是独立程序,每个CPP文件都含有一个主函数,链接不出现错误才怪。

原创粉丝点击