关于解决c++的一个古怪问题 从“C:\WINDOWS\system32\cmd.exe”返回
2010-03-18 10:48:43| 分类: Bug/Debug-错误处|字号 订阅
装的.net编c++程序时碰到一个古怪问题,新建的空白项目都会编译不过,编译时报错项目 : error PRJ0002 : 错误的结果 1 (从“C:\WINDOWS\system32\cmd.exe”返回)。但是会生成一个exe文件,运行exe文件时会说找不到msvcr80d.dll文件,上网一查,说是因为.net2005不适应fat32的原因,还有大虾提供了3种解决方案,我一一测试之后发现均行不通,后来忽然发现我安装.net的d盘是ntfs的,于是决定把项目copy到d盘试试,发现竟然通过,不过编译还是报上述错误,好在大牛赵加峰提供了解决方案,选择属性->配置属性->清单工具->输入和输出->嵌入清单,把是改成否,果然,现在编译也能通过了,一切正常,爽哉
今天碰到早上一个编译错误,从这下面的输出清单中,可以一下子看出是在VS编译完成后,执行批处理文件时,找不到指定路径而造成的。
1>------ 已启动生成: 项目: AvatarModule, 配置: Debug Win32 ------
1>正在创建清单...
1>正在执行生成后事件...
1>已复制 1 个文件。
1>已复制 1 个文件。
1>已复制 1 个文件。
1>系统找不到指定的文件。
1>项目 : error PRJ0002 : 错误的结果 1 (从“C:\WINDOWS\System32\cmd.exe”返回)。
1>生成日志保存在“file://d:\clinet2\Rubbish\vs2005\AvatarModule\Debug\BuildLog.htm”
1>AvatarModule - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 2 最新, 0 已跳过 ==========
我注意到"系统找不到指定的文件"这个提示,我猜测可是执行批处理文件时,找不到指定路径而造成的,但是,我马上又否定了它,因为这个工程的批处理文件一直都是这样,从来没改过,就在昨天它还是没有任何问题的,而我今天也没有做任何修改。所以我又猜测是配置出了问题,但找了半天没找到。 跑去问同事,同事说是路径问题,我争论说,不可能,昨天还没有问题。他说,你看一下就知道了。我打开批处理文件一看,果然有一条路径是错误的。删除它,马上就OK了。
为什么我明明猜测到了问题的所在,却没有去进一步去证实它。就因为我太过依赖“工程昨天是好的,以前也没有问题”这样一个想法,而忽视掉编译器的重要提示。但我却没有想过,以前一直是错的,而今天错误恰恰暴露了出来而已。