请勿在一个工程中写两个相同名称的cpp文件

今天将自己写的一个对comtrade(暂态数据事件交换格式)标准实现的文件放到了另外一个vs工程中,将自己的所有源文件放到了另外一个vs2008工程的新建的comtrade文件夹下面。

不料,编译的时候提醒了一个错误:

链接的时候库的问题:unresolved error:....(编译库的时候经常遇到的那个,一般来说都是缺少某个库文件)

但我这里什么原因呢。仔细一看原来,我的comtrade文件夹下有个utility.h文件(对应utility.cpp),该工程下有一个Utility.h(对应Utility.cpp)文件,我们知道,文件名是对大小写不敏感的,所以,两个文件名相冲突了。

不怕,我讲我的utility.h改名为comtrade_utility,但是发现,错误还是那样的,不增不减。这是为什么捏。一番折腾,无果!

到debug文件下面,找找原因,一看,哇塞,竟然没有comtrade_utilty.obj。我懂了,果断将我的utility.cpp改成comtrade_utility.cpp,得解。


总结:

    同一个工程中,会为每一个cpp的实现文件生成一个.obj,在debug文件夹下面。现在有两个同名的.cpp文件,就会引起冲突!这种冲突在编译的时候没有错误,但在链接的时候就会报错。所以,以后一定要注意了。utiliy.cpp和Utility.cpp在链接的过程会被看做同一个文件名!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值