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

本文记录了一次使用VC6.0编译系统教学过程中的错误经历。在尝试将多个含有_main函数的源文件放入同一工程时,遇到了链接错误LNK1169及LNK2005。文章详细解释了错误原因,并提供了正确的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天上机课,教学生使用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文件都含有一个主函数,链接不出现错误才怪。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值