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