Linux下gcc编译报错:fatal error: sys/ustat.h: No such file or directory 解决办法

Posted Z.Q.Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下gcc编译报错:fatal error: sys/ustat.h: No such file or directory 解决办法相关的知识,希望对你有一定的参考价值。

文章目录


项目场景

报错如下:

../../.././libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:159:
28: fatal error: sys/ustat.h: No such file or directory
 #include <sys/ustat.h>
                       ^
compilation terminated.

解决办法

修改 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 文件:

vim libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc

首先注释掉 #include <sys/ustat.h> 这行内容(158 行左右):


接着在 250 行左右修改 unsigned struct_ustat_sz = sizeof(struct ustat); 语句,改为如下内容:

  // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
  // has been removed from glibc 2.28.
#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \\
  || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \\
  || defined(__x86_64__)
#define SIZEOF_STRUCT_USTAT 32
#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \\
  || defined(__powerpc__) || defined(__s390__)
#define SIZEOF_STRUCT_USTAT 20
#else
#error Unknown size of struct ustat
#endif
  unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;

改动如下:

保存并退出,重新 make

以上是关于Linux下gcc编译报错:fatal error: sys/ustat.h: No such file or directory 解决办法的主要内容,如果未能解决你的问题,请参考以下文章

错误记录编译 Linux 内核报错 ( fatal error: openssl/opensslv.h: No such file or directory )

ndk-build 编译报错 fatal error: error writing to -: Invalid argument } ^

ffmpeg交叉编译报错:aarch64-mix210-linux-gcc: error: missing argument to ‘-mcpu=‘

ffmpeg交叉编译报错:aarch64-mix210-linux-gcc: error: missing argument to ‘-mcpu=‘

C语言编译报错:fatal error: mutex: No such file or directory

错误记录编译 ijkplayer 报错 (fatal error: ijksoundtouch/ijksoundtouch_wrap.h: No such file or directory )