gcc源码编译报错:error: dereferencing pointer to incomplete type ‘struct ucontext’ 解决办法

Posted Z.Q.Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gcc源码编译报错:error: dereferencing pointer to incomplete type ‘struct ucontext’ 解决办法相关的知识,希望对你有一定的参考价值。


项目场景

在安装 gcc 使用 make 编译源码时,出现如下报错:

In file included from ../.././libgcc/unwind-dw2.c:401:0:
./md-unwind-support.h: In function ‘x86_64_fallback_frame_state’:
./md-unwind-support.h:65:47: error: dereferencing pointer to incomplete type ‘struct ucontext’
       sc = (struct sigcontext *) (void *) &uc_->uc_mcontext;
                                               ^~

解决办法

修改 md-unwind-support.h 文件的第 61 行,其中该文件位于 ./x86_64-pc-linux-gnu/libgcc 目录下:

vim ./x86_64-pc-linux-gnu/libgcc/md-unwind-support.h

输入 :61,跳转到第 61 行,修改 struct ucontext *uc_ = context->cfa; 中的 ucontextucontext_t

struct ucontext_t *uc_ = context->cfa;

按下 ESC 键,输入 :wq 保存并退出,重新执行 make

以上是关于gcc源码编译报错:error: dereferencing pointer to incomplete type ‘struct ucontext’ 解决办法的主要内容,如果未能解决你的问题,请参考以下文章

golang panic: runtime error: invalid memory address or nil pointer dereference [

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

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

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

CentOS gcc编译报错:gcc: error trying to exec ‘cc1plus‘: execvp: No such file or directory(原因:g++没安装)

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