我试图在Ubuntu14.04 x64中编译GCC 3.4.6。它已经有了更新版本的GCC-4.8.2。
我负责./configure --prefix=/usr/local/gcc-3.4和make。
我最终犯了几个错误,我可以在搜索中找到解决方案。
错误1
最后,我在这个错误中结束了,我找不到任何解决方案。
../../gcc/unwind-dw2.c: In function `uw_frame_state_for':
../../gcc/unwind-dw2.c:1031: error: field `info' has incomplete type
make[2]: *** [libgcc/32/unwind-dw2.o] Error 1
make[2]: Leaving directory `/home/hp-11/Documents/gcc-3.4.6/build/gcc'
make[1]: *** [stmp-multilib] Error 2
make[1]: Leaving directory `/home/hp-11/Documents/gcc-3.4.6/build/gcc'
make: *** [all-gcc] Error 2有人知道怎么修吗?如果需要更多的细节,请告诉我。
发布于 2014-10-15 06:19:44
这是众所周知的老问题,关于siginfo和siginfo_t。
你所需要的就是看看你GCC的资料,所有地方都是这样
struct rt_sigframe { \
int sig; \
struct siginfo *pinfo; \
void *puc; \
struct siginfo info; \
struct ucontext uc; \
} *rt_ = (CONTEXT)->cfa; \
sc_ = (struct sigcontext *) &rt_->uc.uc_mcontext; \这个在gcc/config/i 386/linux.h内部,但是您的拱形可能不同。
手动将struct siginfo *替换为siginfo_t *,将struct siginfo替换为siginfo_t,使其兼容最新的POSIX。在每个rt_sigframe声明中,最常见的有两个这样的地方,包括您的info问题字段。
https://stackoverflow.com/questions/26375445
复制相似问题