config-temp / qemu-conf.c:1:10:致命错误:sys / endian.h:找不到文件或目录

问题描述

我想通过xen将集成的gpu从主机os(ubuntu 20.04)传递到Windows 10 guest os。这是因为xen对我而言非常有效,对于我的特定需求,它比qemu-kvm更好,并且因为我只有两张图形卡。我已经传递给来宾的nvidia rtx 2080 ti和Intel UHD 630,可以从主机复制到来宾,以便可以在两个地方使用而不会受到干扰。因此,我正在尝试构建此存储库:

https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide#332-build-qemu--xen-for-xengt

浏览日志,我看到这种情况:

config-temp/qemu-conf.c:1:10: Fatal error: sys/endian.h: File o directory non esistente
    1 | #include <sys/endian.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.

/usr/bin/ld: /tmp/cc6WBNSk.o: in function `main':
/etc/xen/igvtg-xen/tools/qemu-xen-build/config-temp/qemu-conf.c:2: undefined reference to `sin'
collect2: error: ld returned 1 exit status

/usr/bin/ld: /tmp/ccEQrVtw.o: in function `main':
/etc/xen/igvtg-xen/tools/qemu-xen-build/config-temp/qemu-conf.c:4: undefined reference to `timer_create'
collect2: error: ld returned 1 exit status

config-temp/qemu-conf.c: In function ‘main’:
config-temp/qemu-conf.c:2:25: warning: null argument where non-null required (argument 1) [-Wnonnull]
    2 | int main(void) { return sem_timedwait(0,0); }
      |                         ^~~~~~~~~~~~~
config-temp/qemu-conf.c:2:25: warning: null argument where non-null required (argument 2) [-Wnonnull]

config-temp/qemu-conf.c: In function ‘main’:
config-temp/qemu-conf.c:2:25: error: null argument where non-null required (argument 1) [-Werror=nonnull]
    2 | int main(void) { return sem_timedwait(0,0); }
      |                         ^~~~~~~~~~~~~
config-temp/qemu-conf.c:2:25: error: null argument where non-null required (argument 2) [-Werror=nonnull]

似乎编译停止,因为:

config-temp/qemu-conf.c:1:10: Fatal error: sys/endian.h: File o directory non esistente
    1 | #include <sys/endian.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.

这是qemu-conf.c文件

root @ ziomario-z390aoruspro:/ etc / xen / igvtg-xen / tools / qemu-xen-build / config-temp#nano qemu-conf.c

include <semaphore.h>
int main(void) { return sem_timedwait(0,0); }

你们中的某人可以帮助我修复此错误?谢谢。

解决方法

endian.h通常位于Linux的include /下。

您必须安装glibc标头,然后将源文件更改为#include <endian.h>