到目前为止,我的archlinux系统需要gcc (8.3)的当前版本,以及gcc 7.2和劈叉5.5 (在其他路径上)。
我正在试图编译源代码,如下所示:
$ ./contrib/download-prerequisites
在build中:
$ ../gcc-5.5.0/configure --prefix=/home/mjonyh/bin/gcc/5.5.0 --disable-multilib --enable-languages=c,c++,fortran
而不是发现错误
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。
发布于 2019-05-15 18:50:04
glibc 2.28的发布说明说:
ustat
不再适用于新链接的二进制文件;标头、<ustat.h>
和<sys/ustat.h>
已被删除。对于fstatfs
和statfs
来说,这个函数已经被废弃了。为了建设GCC 5.5,你有几个选择:
ustat
是偶然添加的,它的废弃早于围棋开发的开始,甚至可能是谷歌作为一家公司。)--enable-languages=
调用使用合适的configure
参数禁用gccgo前端。发布于 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。
https://stackoverflow.com/questions/56096060
复制相似问题