【问题标题】:Error in signal.c when compile qemu-xen编译 qemu-xen 时 signal.c 出错
【发布时间】:2013-11-29 10:09:16
【问题描述】:

在 xen-4.2.3 中构建 tools/qemu-xen 时出错。

当我makeqemu-xen时抱怨:

/home/xen/xen-4.2.3/tools/qemu-xen/linux-user/signal.c:3468:24: error: field ‘info’ has incomplete type
make[1]: *** [signal.o] Error 1
make: *** [subdir-cris-linux-user] Error 2

这就是源代码:

3465 struct rt_signal_frame {
3466         struct siginfo *pinfo;
3467         void *puc;
3468         struct siginfo info;
3469         struct ucontext uc;
3470         uint8_t retcode[8];       /* Trampoline code. */
3471 };

我找不到任何不妥之处,最连线的是info字段不是siginfo的第一个引用,为什么它不抱怨*pinfo(在3466)?

我也在 xen-4.2.2 中尝试过,结果是一样的。两个编译都是在官方 tarball 上进行的。有没有其他人遇到过同样的问题?

【问题讨论】:

  • 它不会抱怨pinfo,因为那是一个指针。在 C 中,您可以安全地创建一个指向不完整类型的指针,因为编译器唯一需要知道的是指针的大小,而不是所指向的东西的大小。

标签: c++ c signals qemu xen


【解决方案1】:

它抱怨这一行:

 3468         struct siginfo info;

你做了吗

 #include <siginfo.h>

在您的编译单元之前的某个地方?这是在您的包含路径中吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2012-05-05
    • 2010-10-25
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    相关资源
    最近更新 更多