【发布时间】:2020-01-20 18:06:01
【问题描述】:
在 Visual Studio 中运行 C++ 时,我正在尝试编写一个简单的 Hello World 命令。但是,当我这样做时,我不断遇到这个问题。
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\math.h(1,1): warning C4821: Unable to determine Unicode encoding type, please save the file with signature (BOM)
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cstdlib(24,18): error C2039: 'fabs': is not a member of '`global namespace''
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cstdlib(24,22): error C3861: 'fabs': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cstdlib(28,18): error C2039: 'fabsf': is not a member of '`global namespace''
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cstdlib(28,23): error C3861: 'fabsf': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cstdlib(32,18): error C2039: 'fabsl': is not a member of '`global namespace''
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cstdlib(32,23): error C3861: 'fabsl': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cmath(26,47): warning C4244: 'argument': conversion from 'double' to 'int', possible loss of data
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cmath(30,18): error C2039: 'acosf': is not a member of '`global namespace''
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cmath(30,23): error C3861: 'acosf': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\cmath(34,18): error C2039: 'acoshf': is not a member of '`global namespace''
(etc)
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
return 0;
}
问题似乎来自这些行的 cmath 头文件内部。
_NODISCARD _Check_return_ inline float acos(_In_ float _Xx) noexcept /* strengthened */ {
return _CSTD acosf(_Xx);
}
_NODISCARD _Check_return_ inline float acosh(_In_ float _Xx) noexcept /* strengthened */ {
return _CSTD acoshf(_Xx);
}
_NODISCARD _Check_return_ inline float asin(_In_ float _Xx) noexcept /* strengthened */ {
return _CSTD asinf(_Xx);
}
我应该注意,这些错误存在于 cmath 头文件的大部分中,而不仅仅是此处显示的错误,但我认为包含数百个错误没有用处。
这与 Visual Studio 依赖项有关吗?有什么办法可以避免这个错误?
我正在安装一个干净的 Visual Studio。
【问题讨论】:
-
你是不是偶然使用了预编译的头文件?
-
如果我是,我不是故意这样做的。如何检查我是否存在?对不起,我是新来使用视觉的。
-
右键项目,进入属性,C/C++,预编译头文件。第一行应该说“不使用预编译头”
-
我改变了,条目是空白的,但我把它改成了“不使用预编译头”。仍然遇到同样的问题。
-
好的,正在检查。有时预编译的头文件会导致问题。编译的时候,错误还在吗?错误
Exxxx是一个智能感知错误,并不总是真正的错误。编译器错误将以C开头
标签: c++ visual-studio visual-studio-2019 cmath