到目前为止,我archlinux系统需要当前版本的gcc(8.3)沿着gcc 7.2和gcc 5.5(在其他路径中)。
我试图编译的源代码如下:
$ ./contrib/download-prerequisites
内部版本目录:
$ ../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
已安装:二进制GCC-libs libmpc GCC-ada libmpc数据库库
更新:我通过手动注解掉gcc-x.x. x/libsanitizer/sanitizer-common/sanitizer-platform-limits-posix.cc中的 * ustat. h*(第157和250行)来解决这个问题。
2条答案
按热度按时间eivgtgni1#
glibc 2.28的发行说明如下:
ustat
不再可用于新链接的二进制文件;标头<ustat.h>
和<sys/ustat.h>
已被删除。不推荐使用此函数,而推荐使用fstatfs
和statfs
。为了构建GCC 5.5,您有几个选项:
ustat
被添加到Go语言中只是偶然的,它的弃用早于Go语言开发的开始,甚至可能早于Google作为一家公司。)configure
调用的适当--enable-languages=
参数禁用gccgo前端。9gm1akwq2#
除此之外:
更新:我通过手动注解掉gcc-x.x. x/libsanitizer/sanitizer-common/ www.example.com中的ustat. sanitizer-platform-limits-posix.cc(第157和250行)来解决这个问题。
gcc-7.4.0已移除
sanitizer-platform-limits-posix.cc
中的ustat.h
。如果可能,请改用7.4.0。