非常神秘/随机C++ WDK STL 7 错误: iosfwd(202): 错误 C2144: 语法错误
Very Mysterious/Random C++ WDK STL 7 Error: iosfwd(202): error C2144: syntax error
我有以下名为Temp.cpp
的琐碎文件:
#include <string>
int main() { return 0; }
我正在尝试使用 WDK 7.1 在 Windows XP 免费构建环境中使用以下命令行编译它:
cl.exe /Iincapicrtstl70 /Iinccrt C:Temp.cpp
我收到非常随机的错误,例如:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86
C:WinDDK7600.16385.1incapicrtstl70iosfwd(202) :
error C2144: syntax error : 'int' should be preceded by ';'
如果我使用 stl60
而不是 stl70
,错误就会消失,但这并不能解决问题。
问题的原因是什么?
更新:我尝试再次卸载并安装 WDK,但没有任何变化。 :(
更新2:好的,显然错误在头文件本身尖叫:_SCL_INSECURE_DEPRECATE
是原因。有人知道如何正确关闭它吗?(如果我只是注释掉这些行,我会收到更多关于其他宏的错误。
通过修改标题和猜测检查,自己找到了答案:
我需要定义_STL70_
。
你在选择哪cl.exe
?如果您的路径碰巧在 WDK 编译器之前有一个较旧的 (VC6) 编译器,则预计会出现这些错误。VC6 无法编译 VC7 附带的 STL
显然,错误在头文件本身尖叫:
_SCL_INSECURE_DEPRECATE
是原因。有人知道如何正确关闭它吗?
如果您在使用_SCL_INSECURE_DEPRECATE
时遇到问题,请尝试设置:
/D_SCL_SECURE_NO_DEPRECATE
但是鉴于您看到的错误消息,听起来您正在使用比标头支持的编译器更早的编译器编译标头(因此无论如何这可能不会让您走得很远)。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 为什么一个"hello world"的 c++ 程序会在 Visual Studio 2015 中引发如此多的"iosfwd"错误?
- 编译VS2008 soln时标准Microsoft文件"iosfwd"和"atlconv.h"中的语法错误?
- 非常神秘/随机C++ WDK STL 7 错误: iosfwd(202): 错误 C2144: 语法错误