c语言设计同学录程序,c语言做同学录代码出现这个是什么意思?不懂,求解谢谢...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

http://www.cppblog.com/cs-xiaolee/archive/2011/12/26/162848.html

今天遇到一个编译错误,抽象化后描述为:

The source files "*\A.cpp " and "*\A.cpp " are both configured to produce the output file "*\A.obj ", The project cannot be built

其中A.cpp可以被替换为任何名称的cpp文件,*可被替换成各种路径,当然前后两个路径不相同(否则就是一个文件不会报错了)

其实该问题可以理解为工程中包含了两个同名的cpp文件,而且两个文件都被绑定到同一输出A.obj,编译器无法识别应该编译哪个文件,于是拒绝编译。

当初我没有理解到这一问题的时候一直对此一筹莫展

参考了以下几个链接:

http://topic.csdn.net/t/20060904/08/4995921.html

http://topic.csdn.net/t/20010203/00/64063.html

但是这两个链接中都说要去改工程文件的makefile,要不就是让从零开始重新建工程,两个都太麻烦了。我是懒人,马上就犹豫了。

再次编译,又弹出了同样的提示,还是编译不起来。但这次我注意到一个问题

“The source files "*\A.cpp " and "*\A.cpp " are both configured to produce the output file "*\A.obj ", The project cannot be built”

的意思,不就是说,有两个cpp重名,系统无法分辨该编译哪个“正确的”cpp文件么?

突然想到最开始我对项目的野蛮操作了:为了将文件分类,我关闭了工程,并把A.cpp剪切到了一个分类的文件夹里,但并未在工程中删除它。

打开工程后,我直接添加了分类文件夹中的A.cpp

这意味着虽然其中一个cpp文件是不存在的,但仅仅是工程没能加载(load)成功,该文件应该还在工程目录里面。

于是在VC的文件目录浏览器中,我看到了两个A.cpp,在source File栏里面闪闪发光……⊙﹏⊙b汗

手动delete都删掉了,然后重新把分类文件夹上的A.cpp “add to the project”

再次编译,成功。

经测试此类问题应该无需直接修改makeflie(即.dsp文件),如此一来就该问题就简化了。

这也提醒我们,在将工程文件重新分类到自定义文件夹中时,一定要先在工程中“删除”该文件(其实没有删除,只是删除工程中的索引而已,文件还在硬盘上),然后再重新加载,这样就可以有效避免上述问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值