改了一个VS2008的C++ Project,结果编译的时候报了一个让我大跌眼镜的错误:
fatal error C1083: 无法打开包括文件:”windows.h”
这个windows.h看名字很牛x的样子,难不成是VS2008没装好?大概看了一下,有人说是路径问题,windows.h应该在c:Program Files (x86)Microsoft SDKsWindowsv6.0A下面,可是俺的下面没有啊,隔壁的V5.0下面倒是有,可是也不好用。有人说要装Platform SDK,结果说setup was started in a non-native or WoW environment。这个倒是好理解,估计是不支持win7,直接下了个Windows SDK for Windows 7,是下载安装的,全部安装的话有2.3G,有必要搞这么大么。。。我只选Windows Headers and Libraries,结果也有180M,搞笑的是我就算把所有的都不选他也需要110M的空间,似乎VS2008安装的时候也这样,就算是有非装不可Features那你列一下也不是太麻烦吧,何必搞这么诡异呢?
不过总算这个问题是解决了,然后就是说找不到msado60_Backcompat_x64.tlb,这个好办,直接下载一个就可以:http://download.microsoft.com/download/6/4/3/64318ED2-7E18-4A5C-80E2-9BDA0DF02DB3/msado60_Backcompat_x64.tlb
最后一个问题最搞笑:
error PRJ0003 : 生成”mt.exe”时出错。
让我愣了好久,我的项目里头没有一个叫mt.exe的目标文件啊,看了一下生成的日志文件,前面有一行说:
正在创建命令行”mt.exe @。。。。。。
老天爷啊,真是神一样的翻译啊,C盘搜了一下,没找到mt.exe。
找了一下,答案也是五花八门,有的说要清除一下解决方案,这个对我来说显然不是;也有人说权限不够,结果用管理员权限打开VS2008之后问题更多了,原来8个项目还有两个能编译的,结果那俩也不行了;也有的说要安装 ATL Server的,看了一下ATL Server的介绍觉得也不太靠谱;也有的说是要改环境变量,有的说加VS包含路径,这些都不行。最后看到有一篇文章上讲到:
3、error PRJ0003 : 生成”mt.exe”时出错
原因未明
解决办法:
中文版VS:右键点击工程,选”属性”==>”配置属性”==>”链接器”==>”清单文件”==>”生成清单”==>设为”否”
这个能解决问题,但只是把执行mt.exe的那一步省略了而已。最后看了一下,说mt.exe是Visual Studio自带的Manifest处理程序,可是打开VS2008安装程序之后也看不到是哪个组件,最后搜了一下,微软网站上找到一篇文章:http://msdn.microsoft.com/en-us/library/windows/desktop/aa375649%28v=vs.85%29.aspx,说了它属于Windows SDK的Side-by-Side Assembly Development Tools,原来还是这个Windows SDK啊,打开安装程序一看,里头有一个Windows Development Tools,装上就可以了。
说实在的VisualStudio还真是难用啊,感觉这些东西直接全部安装最靠谱。。。