VC编译错误:The source files "*\A.cpp " and "*\A.cpp " are both configured to produce the output file "*\

转载 2015年07月09日 11:56:06
今天遇到一个编译错误,抽象化后描述为:
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文件),如此一来就该问题就简化了。

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


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

相关文章推荐

maven创建Web项目启动错误The servlets named [X] and [Y] are both mapped to the url-pattern [/DemoServlet]

六月 05, 2017 3:34:34 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache T...

【解决方案】VC++—>add files to folder失效,open-file弹出msdev.exe应用程序错误

【问题现象】不知从什么时候开始,VC6.0不听话了,open-file弹出msdev.exe应用程序错误,“0×73d311c7”指令 引用的“0×00000004”内存,该内存不能为“read”。而...

The servlets named [xxx] and [com.web.xxx] are both mapped to the url-pattern

因为用的是Dynamic web module version 3.0 所以Servlet被创建出来都是默认使用注解的形式 但是由于我的注解貌似无法启动 所以我手动在web.xml中配置Servlet...

The servlets named [LogRecord] and [com.action.service.imp.LogServiceImp] are both mapped to the url

Caused by: java.lang.IllegalArgumentException: The servlets named [LogRecord] and [com.action.servic...

VS编译错误:mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file

一、问题描述 今天在用DDK编译一个驱动时出现以下错误:   1>------ 已启动生成: 项目: DriverDev, 配置: Driver Check Edtion Win32 -----...

VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x

原文链接:http://www.cnblogs.com/madhenry/archive/2011/06/29/2093678.html 最近拿到一个别人的工程,是使用VS.net创建的,而...

VS2010编译错误 #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403的解决方法

下载的一个MFC工程,在VS2010(工程是被转换为VS2010工程的)上编译遇到如下错误: 1>  stdafx.cpp 1>d:\program files\microsoft visual ...

Android studio编译错误 duplicate files during packaging of APK...error

Information:Gradle tasks [:app:assembleDebug] :app:preBuild :app:compileDebugNdk UP-TO-DATE :app:pre...

IDEA 出现编译错误 Multi-catches are not supported a this language level 解决方法

IDEA 出现编译错误 Multi-catches are not supported a this language level 解决方法

How to create .lib file when you only have .dll and .h files

1. 原文地址:http://www.codeproject.com/KB/cpp/libfromdll.aspx 这篇讲解了DEF文件地结构,但附件中的工程编译不了。   2. Microso...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC编译错误:The source files "*\A.cpp " and "*\A.cpp " are both configured to produce the output file "*\
举报原因:
原因补充:

(最多只允许输入30个字)