C++ 为什么我会得到;不为类型命名";在编译我的hello world c++;文件

C++ 为什么我会得到;不为类型命名";在编译我的hello world c++;文件,c++,linux,compilation,C++,Linux,Compilation,在我的笔记本电脑上更新了我的Arch Linux系统之后,我在编译我正在处理的项目时遇到了很多编译错误。同样的代码在其他机器上也能很好地编译 所以,我尝试了一个hello world小程序,但失败了,出现了同样的错误 我花了相当长的时间试图弄清楚发生了什么,但我一无所获,所以我非常感谢任何提示 我尝试编译的文件非常简单: #include <iostream> int main () { std::cout << "Hello, world!\n"; r

在我的笔记本电脑上更新了我的Arch Linux系统之后,我在编译我正在处理的项目时遇到了很多编译错误。同样的代码在其他机器上也能很好地编译

所以,我尝试了一个hello world小程序,但失败了,出现了同样的错误

我花了相当长的时间试图弄清楚发生了什么,但我一无所获,所以我非常感谢任何提示

我尝试编译的文件非常简单:

#include <iostream>

int main ()
{
    std::cout << "Hello, world!\n";
    return 0;
}
并获取以下错误:

In file included from /usr/include/c++/8.2.1/memory:74,
             from /usr/local/include/format.h:36,
             from /usr/local/include/time.h:11,
             from /usr/include/pthread.h:24,
             from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h:35,
             from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/gthr.h:148,
             from /usr/include/c++/8.2.1/ext/atomicity.h:35,
             from /usr/include/c++/8.2.1/bits/ios_base.h:39,
             from /usr/include/c++/8.2.1/ios:42,
             from /usr/include/c++/8.2.1/ostream:38,
             from /usr/include/c++/8.2.1/iostream:39,
             from hello.cpp:4:
/usr/include/c++/8.2.1/ext/concurrence.h:124:5: error: 
'__gthread_mutex_t' does not name a type; did you mean 
'__pthread_mutex_s'?
 __gthread_mutex_t _M_mutex;
 ^~~~~~~~~~~~~~~~~
 __pthread_mutex_s
compilation terminated due to -Wfatal-errors

如果我删除
-Wfatal errors
开关,我只会收到更多的错误。

是/usr/local/include中的两个头文件,即format.h和time.h导致了我的问题。删除它们后,我现在可以再次编译我的项目。

显示的代码没有问题,无论是否使用
-std
开关,因此编译器的STL有缺陷,或者编译器配置错误,或者安装已损坏。我将尝试重新安装gcc。
In file included from /usr/include/c++/8.2.1/memory:74,
             from /usr/local/include/format.h:36,
             from /usr/local/include/time.h:11,
             from /usr/include/pthread.h:24,
             from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h:35,
             from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/gthr.h:148,
             from /usr/include/c++/8.2.1/ext/atomicity.h:35,
             from /usr/include/c++/8.2.1/bits/ios_base.h:39,
             from /usr/include/c++/8.2.1/ios:42,
             from /usr/include/c++/8.2.1/ostream:38,
             from /usr/include/c++/8.2.1/iostream:39,
             from hello.cpp:4:
/usr/include/c++/8.2.1/ext/concurrence.h:124:5: error: 
'__gthread_mutex_t' does not name a type; did you mean 
'__pthread_mutex_s'?
 __gthread_mutex_t _M_mutex;
 ^~~~~~~~~~~~~~~~~
 __pthread_mutex_s
compilation terminated due to -Wfatal-errors