centos 7 关于引用stdatomic.h的问题
问题:/tmp/tmp4usxmdso/main.c:6:23: fatal error: stdatomic.h: No such file or directory
#include <stdatomic.h>
解决步骤:
1.这个错误是因为缺少C编译器的标准原子操作头文件 stdatomic.h。在Linux系统中,我们需要安装开发工具包来解决这个问题。
可以运行以下命令来安装必要的开发工具:
sudo yum groupinstall "Development Tools" -y
2.看起来系统的yum源有问题,让我们先修复yum源,然后再安装开发工具:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && yum clean all && yum makecache
3.看来yum源还是有问题。让我们尝试直接安装gcc和相关开发工具:
yum install -y gcc gcc-c++ kernel-devel make --disablerepo=centos-sclo-rh
4.让我们禁用所有有问题的repo后再试:
yum install -y gcc gcc-c++ kernel-devel make --disablerepo=centos-sclo-rh --disablerepo=docker-ce-stable
5.看起来gcc和开发工具已经安装好了。现在让我们检查一下 stdatomic.h 文件:
find /usr -name stdatomic.h
6.看来系统中确实缺少 stdatomic.h。这个问题在CentOS 7上比较常见,因为它使用的gcc版本较旧。我们有两个解决方案:
- 安装更新版本的gcc:
yum install -y centos-release-scl && yum install -y devtoolset-7
7.看来yum源的问题还是没有完全解决。让我们尝试第二个解决方案:
- 使用conda环境安装gcc:
conda install -y gcc_linux-64 gxx_linux-64