cmath抛出错误C2062、C2059、C2143和C2447.cmath包含在矢量文件中
cmath is throwing errors C2062, C2059, C2143 and C2447. cmath is included in the vector file
我有一个旧的C++项目正在编译。它不是我写的。我正试图为我认识的人编译它。代码可以追溯到20世纪90年代初、80年代末,尽管其中一些代码大约在2008年左右才开发出来。我正试图在VS 2015中编译它。长话短说,我得到了一个错误矢量";包括在内。在矢量"中;cmath";包括在内,这就是出现错误的地方。显然,此代码是在Visual Studio的早期版本(即2013或2010(中成功编译的。
这是一个大型项目,因此很难完全呈现,但这是包含矢量的源文件的顶部:
#ifndef EXPRESSAPPLICATION_H
#define EXPRESSAPPLICATION_H
#pragma warning (disable : 4786)
#include <windows.h>
#include <vector>
#include "ObjList.h"
以下是错误列表:
严重性代码描述项目文件行抑制状态
错误C2062键入"double"意外的ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 17
错误C2059语法错误:"("ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 17
错误C2143语法错误:缺少";"之前"{"ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio14.0\VC\include\cath 18
错误C2447"{":缺少函数头(旧式形式列表?(ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 18
错误C2062类型"float"意外的ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 30
错误C2059语法错误:"("ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 30
错误C2143语法错误:缺少";"之前"{"ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio14.0\VC\include\cath 31错误C2447"{":缺少函数头(旧式形式列表?(ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 31
错误C2062键入"long double"意外的ExpressOffice C:\Program文件(x86(\Microsoft Visual Studio 14.0\VC\include\cath 328
错误C2059语法错误:"("ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 328
错误C2143语法错误:缺少";"之前"{"ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio14.0\VC\include\cath 329
错误C2447"{":缺少函数头(旧式形式列表?(ExpressOffice C:\Program Files(x86(\Microsoft Visual Studio 14.0\VC\include\cath 329
以下是它在cmath中抱怨的代码行:
line 17:
_Check_return_ inline double abs(_In_ double _Xx) _NOEXCEPT
{
return (_CSTD fabs(_Xx));
}
line 30:
_Check_return_ inline float abs(_In_ float _Xx) _NOEXCEPT
{
return (_CSTD fabsf(_Xx));
}
line 328:
_Check_return_ inline long double abs(_In_ long double _Xx) _NOEXCEPT
{
return (_CSTD fabsl(_Xx));
}
似乎只有cmath中的abs((函数受到影响。其他数学函数均不受影响。我对这个问题感到困惑。谢谢你在这方面的帮助!
我得到了同样的错误,并发现原因是因为我有
#include <math.h>
在几个源文件中,但我也有
#include <cmath>
在另一个源文件中。我把<cmath>
改成了<math.h>
解决了问题。
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 编译包含字符串的代码时遇到问题
- c++库的公共头文件中应该包含什么
- 将包含C样式数组的对象初始化为成员变量(C++)
- 是否需要删除包含对象的"pair"?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 使用mongocxx驱动程序时包含头文件问题
- 如何在h文件中包含.o对象文件
- 在混合代码库中将C转换为C++时出现许多包含错误
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- cmath抛出错误C2062、C2059、C2143和C2447.cmath包含在矢量文件中
- 为什么您需要C++头文件的包含保护
- 无法在UE4中包含BP类到CPP类
- 包含 cmath 标头时出现 cmake 编译错误
- -O1/2/3 与 -std=c++1y/11/98 - 如果包含,<cmath>我收到错误:"_hypot"未在此范围内声明
- 我包含<cmath>但无法编译标准::abs(double)
- 为什么编译器允许我调用 pow 和 sqrt,即使我没有包含 cmath?
- 在标头中包含cmath时编译C++文件