目前,我的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
已安装的软件包:binutils gcc-libs libmpc gcc-ada libmpc dejagnu inetutils lib32-gcc-libs doxygen gcc-ada lib32-glibc
更新: 我通过在gcc-x.x.x/libsanitizer/sanitizer-common/sanitizer-platform-limits-posix.cc中手动注释掉ustat.h(第157和250行)解决了该问题。因为Arch Linux在glibc中弃用了ustat.h。
make
报告了一个错误。应该会有一条错误消息在更早之前直接显示是什么导致了失败。 - Keith Thompsonmake
而不是configure
,而且你没有展示给我们make
命令。运行make
会产生很多输出,包括错误信息。将该输出保存到文件中,然后在该文件中查找错误信息。 - Keith ThompsonNEWS
文件:“已弃用的函数ustat
不再对新链接的二进制文件可用;头文件<ustat.h>
和<sys/ustat.h>
已被删除。该函数已被fstatfs
和statfs
所取代。” - Keith Thompson