我所遇到的LNK2005问题。

       在写数学库时,很无奈的遇到莫名其妙的LNK2005错误——类似:AAA.obj error LNK2005 int book cbook@@3HA already defined in BBB.obj的一堆东西。。。说这些函数在另一个只调用该函数的而压根儿没有定义的文件里已有定义,汗。。。

       看msdn只觉得一头雾水,全局变量、第三方库文件我都没有用到啊。到网上搜索,竟然能搜出一大堆,但文章的内容都是相似的。搜来搜去都是因为全局变量的问题,真的郁闷。但忽然看到有一篇文章的结尾说:

       "这就是我所遇到过的LNK2005错误的几种情况,肯定还有其他的情况也可能造成这种错误,所以我不希望你在看完这篇文章以后,再遇到LNK2005错误时候,不动脑筋的想对号入座的排除错误。编程的过程就是一个思考的过程,所以还是多多开动你的头脑,那样收获会更多!"

    说得很对啊。于是想了想——全局变量的问题是因为在声明时赋了初值,让变量得到实体,如果这个操作重复了,就会产生LNK2005。那么对于函数来说,难道……难道是因为我在.h文件里把函数体也写上去而导致的?

    于是立刻到.h文件里把所有的实现都删掉,只留函数声明,然后在相应的.cpp文件里写好函数体(因为有些函数的内容只有一、两行,懒得去拆。。。)。果然,成功运行了。

    由这次可见,编程时真的要多动脑筋;还有,别随便偷懒!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值