vs2010编译提示错误


昨天编译以前用2010编译没问题的程序出现如下提示,我电脑装有vs2005 vs2008 vs2010

1>------ 已启动全部重新生成: 项目: Seat, 配置: Debug Win32 ------
1>  Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
1>  Microsoft (R) Incremental Linker Version 10.00.30319.01
1>  Copyright (C) Microsoft Corporation.  All rights reserved.
1> 
1>  /out:
1>  ?.exe
1>LINK : fatal error LNK1146: 没有用选项“/out:”指定的参数
1>  Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
1> 
1>  cl ?
1> 
1>CL : Command line warning D4024: unrecognized source file type '?', object file assumed
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

 

在网上找了半天的找到一个帖子的解决方法

 

在一个外文网站上发现了一个帖子,他是这么说的:

Directly speaking, this problem is caused by using an older version of compiler(cl.exe) than your VS's one. Take a look carefully underlined lines explaining version and copyright of the compiler. Again, that build log was captured from VS2010 but it's saying that copyright is valid in 1984-1998. In VS2008 and VS2010(earlier versions are not tested), when you try to build a project, VS searches a compiler to use for your build. In this step, VS doesn't choose it's own cl.exe directly but searches directories specified in the environmental variable 'path' first. (I think that VS calls cl.exe without path) Because of that, if there's another version of cl.exe in some directory of env-path, VS unexpectedly use it! This is the reason why your VS use an older one than yours. In my case, there was another cl.exe in C:/Windows/SysWOW64(I'm using Windows 7 64bit).

 

这样看的话我的电脑应该也是这样一个问题。

于是我在我的系统PATH里面所有的目录查找cl.exe。我的系统是XP,然后我在windows/system32目录里面找到了(有的在安装目录、如果装多个版本vs 则在system32和安装目录都有),版本明显的是老的。然后将这个文件和C2.dll换成了新的之后,再次编译,一切都OK了。

 

呵呵,VS2010这点做的不太好,还是在安装目录查找cl.exe的好。在环境目录查找的话,很可能就会出现我遇到的问题了。

 

主要原因是cl.exe版本太旧。因为系统中装了多个版本的vs 使用vs2010时默认调用了vs2005的版本。

解决方法1 到vs2010安装目录找到cl.exe c2.dll 替换。

解决方法2 把旧的 cl.exe 、c2.dl删除,让vs到其他目录找最新的。

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告