win7平台下vs2010在debug模式下可以正常运行,换成release模式下则出现各种错误,急求高手指点

时间:2021-10-08 03:30:31
win7 系统+vs2010,win32控制台程序。debug模式

下可正常运行,release模式下则报错如下:
 fatal error C1083: 无法打开包括文

件:“SDKDDKVer.h”: No such file or directory
错误指向头文件:targetvar.h,文件中内容如下
-------------------------------
#pragma once

// 包括 SDKDDKVer.h 将定义可用的最高版本的 

Windows 平台。

// 如果要为以前的 Windows 平台生成应用程序,

请包括 WinSDKVer.h,并将
// WIN32_WINNT 宏设置为要支持的平台,然后再包

括 SDKDDKVer.h。

#include <SDKDDKVer.h>

-------------------------------
除此之外,还有错误如:
无法打开源文件"vector”;
未定义标示符vector 
vector不是模板  等等各种莫名错误。而这些错误

在debug模式下是没有的。所以不知道怎么解决,请

求高手指点~
由于本人是新手,积分有限,并且是第一次发帖子

,不明确之处随时联系。谢谢

13 个解决方案

#1


应该是包含的时候路径出了问题。

#2


是也不是问题,可能是这个工程使用了附加包含路径,创建release编译模板的时候这些都会清空(2010和以前的版本都这样),需要把debug模式时用的路径复制过来再编译。另外要是debug模式的时候还用了附加静态库路径的话,release模式下还会有链接错误,需要用类似的方法解决

#3


请确认stdafx.h文件没有被修改过。

#4


崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

#5


引用 1 楼 bjtbjt 的回复:
应该是包含的时候路径出了问题。


我是按照debug模式下的路径设置,在release下也重新设置了一下的。

#6


引用 3 楼 boyka913 的回复:
请确认stdafx.h文件没有被修改过。

没有改过。

#7


引用 2 楼 unituniverse2 的回复:
是也不是问题,可能是这个工程使用了附加包含路径,创建release编译模板的时候这些都会清空(2010和以前的版本都这样),需要把debug模式时用的路径复制过来再编译。另外要是debug模式的时候还用了附加静态库路径的话,release模式下还会有链接错误,需要用类似的方法解决


你说的很对,在发帖之前我已经把debug模式下的路径和链接库的设置都复制到release模式下了。但编译还是出现了帖子中的错误。我的一个小程序两种模式下是都可以运行,大程序就是帖子中的错误了。

#8


项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项

#9


引用 8 楼 zhao4zhong1 的回复:
项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项


找到了SDKDDKVer.h文件的目录,包含进去,这个错误没了,就又有其他文件或者库打不开~

#10


项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项

#11


找到了原因了。是在工程设置里面不知道什么时候把 从父级或者项目默认设置继承  这个选项去掉了,选上之后就可以了。

#12


引用 10 楼 zhao4zhong1 的回复:
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项


谢谢,我已经找到原因了。这些手动添加的我都检查过了,就是没有注意到下面vs 自带路径的对号忘记勾选了~选上就可以了。

#13


在什么地方勾选啊?楼主

#1


应该是包含的时候路径出了问题。

#2


是也不是问题,可能是这个工程使用了附加包含路径,创建release编译模板的时候这些都会清空(2010和以前的版本都这样),需要把debug模式时用的路径复制过来再编译。另外要是debug模式的时候还用了附加静态库路径的话,release模式下还会有链接错误,需要用类似的方法解决

#3


请确认stdafx.h文件没有被修改过。

#4


崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

#5


引用 1 楼 bjtbjt 的回复:
应该是包含的时候路径出了问题。


我是按照debug模式下的路径设置,在release下也重新设置了一下的。

#6


引用 3 楼 boyka913 的回复:
请确认stdafx.h文件没有被修改过。

没有改过。

#7


引用 2 楼 unituniverse2 的回复:
是也不是问题,可能是这个工程使用了附加包含路径,创建release编译模板的时候这些都会清空(2010和以前的版本都这样),需要把debug模式时用的路径复制过来再编译。另外要是debug模式的时候还用了附加静态库路径的话,release模式下还会有链接错误,需要用类似的方法解决


你说的很对,在发帖之前我已经把debug模式下的路径和链接库的设置都复制到release模式下了。但编译还是出现了帖子中的错误。我的一个小程序两种模式下是都可以运行,大程序就是帖子中的错误了。

#8


项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项

#9


引用 8 楼 zhao4zhong1 的回复:
项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项


找到了SDKDDKVer.h文件的目录,包含进去,这个错误没了,就又有其他文件或者库打不开~

#10


项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项

#11


找到了原因了。是在工程设置里面不知道什么时候把 从父级或者项目默认设置继承  这个选项去掉了,选上之后就可以了。

#12


引用 10 楼 zhao4zhong1 的回复:
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项


谢谢,我已经找到原因了。这些手动添加的我都检查过了,就是没有注意到下面vs 自带路径的对号忘记勾选了~选上就可以了。

#13


在什么地方勾选啊?楼主