首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复archlinux中的gcc编译错误(sys/ustat.h:没有这样的文件或目录)?

如何修复archlinux中的gcc编译错误(sys/ustat.h:没有这样的文件或目录)?
EN

Stack Overflow用户
提问于 2019-05-12 03:48:31
回答 2查看 7.4K关注 0票数 4

到目前为止,我的archlinux系统需要gcc (8.3)的当前版本,以及gcc 7.2和劈叉5.5 (在其他路径上)。

我正在试图编译源代码,如下所示:

代码语言:javascript
运行
复制
$ ./contrib/download-prerequisites

在build中:

代码语言:javascript
运行
复制
$ ../gcc-5.5.0/configure --prefix=/home/mjonyh/bin/gcc/5.5.0 --disable-multilib --enable-languages=c,c++,fortran

而不是发现错误

代码语言:javascript
运行
复制
sys/ustat.h: no such file or directory

已安装: binutils gcc- libmpc gcc-ada libmpc dejagnu inetutils lib 32-ada libs doxygen配-ada lib 32-glibc

更新:我通过手动注释gcc-x.x.x/libsanitizer/sanitizer-common/sanitizer-platform-limits-posix.cc中的ustat.h (第157和250号行)来解决这个问题。因为archlinux在glibc中反对ustat.h。

EN

回答 2

Stack Overflow用户

发布于 2019-05-15 18:50:04

glibc 2.28的发布说明说:

  • 过时的函数ustat不再适用于新链接的二进制文件;标头、<ustat.h><sys/ustat.h>已被删除。对于fstatfsstatfs来说,这个函数已经被废弃了。

为了建设GCC 5.5,你有几个选择:

  • 在使用glibc 2.27或更早版本的旧发行版上构建。
  • Backport 对前排的修正到GCC 5。(ustat是偶然添加的,它的废弃早于围棋开发的开始,甚至可能是谷歌作为一家公司。)
  • --enable-languages=调用使用合适的configure参数禁用gccgo前端。
票数 1
EN

Stack Overflow用户

发布于 2021-07-09 04:14:31

除此之外:

更新:我通过手动注释gcc-x.x.x/libsanitizer/sanitizer-common/sanitizer-platform-limits-posix.cc中的ustat.h (第157和250号行)来解决这个问题。因为archlinux在glibc中反对ustat.h。

gcc-7.4.0已经去除了ustat.h中的sanitizer-platform-limits-posix.cc。如果可能的话,可以尝试7.4.0。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56096060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档