这个错误是在使用cmake编译低版本gcc时候出现的。报错信息如下所示:
./md-unwind-support.h:65:47: 错误: dereferencing pointer to incomplete type ‘struct ucontext’
sc = (struct sigcontext *) (void *) &uc_->uc_mcontext;
^
在我这里,md-unwind-support.h文件在build/x86_64-unknown-linux-gnu/libgcc下,其实在最后的错误信息处有写路径。解决办法就是,打开该文件,找到出错的65行,往上四行,也就是61行的位置,是*uc_的定义,将该行改为:
struct ucontext_t *uc_ = context->cfa;
然后再执行make就可以继续编译了。
参考链接:
我的AI之路(13)–解决编译gcc/g++源码过程中出现的错误