C 在Ubuntu 16.04上构建QEMU版本0.15.1失败

C 在Ubuntu 16.04上构建QEMU版本0.15.1失败,c,cross-platform,qemu,C,Cross Platform,Qemu,我正试图在Ubuntu版本16.04上构建一个旧版本的QEMU(版本0.15.1) 我使用以下命令对其进行了配置: ./configure--target list=i386 linux用户,arm linux用户 --python=/usr/bin/python2.7 当我运行“make”命令时,会产生以下错误: syscall.o:在函数do_syscall'中: /home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux user/syscal

我正试图在Ubuntu版本16.04上构建一个旧版本的QEMU(版本0.15.1)

我使用以下命令对其进行了配置:

./configure--target list=i386 linux用户,arm linux用户 --python=/usr/bin/python2.7

当我运行“make”命令时,会产生以下错误:

syscall.o:在函数
do_syscall'中:
/home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux user/syscall.c:7841:
未定义对mq_timedreceive的引用
/home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux user/syscall.c:7813:
对
mq\u unlink'的未定义引用
/home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux user/syscall.c:7824:
未定义对函数中mq_timedsend'syscall.o:的引用
mq_open':/usr/include/x86_64-linux-gnu/bits/mque2.h:56:未定义
在函数
do\u syscall'中引用mq\u open'syscall.o:
/home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux-user/syscall.c:7828:
未定义对
mq_send'的引用 /home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux user/syscall.c:7845: 对
mq\u receive'的未定义引用
/home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux-user/syscall.c:7866:
对
mq_setattr'的未定义引用 /home/asus/Thesis_project/old_qemu/qemu-0.15.1/linux user/syscall.c:7861: 对“mq_getattr”集合2的未定义引用:错误:ld返回1 退出状态生成文件:398:目标“qemu-i386”的配方失败 生成[1]:*[qemu-i386]错误1生成文件:84:目标的配方 “subdir-i386-linux-user”生成失败:[subdir-i386-linux-user] 错误2


我已经将LIBS+=-lrt添加到Makefile.target文件中,它现在可以工作了。
感谢Konrad。

序列“sudo apt get build dep qemu;apt get source--compile qemu”可能会有所帮助。它将安装正确的依赖项,并给出一个提示,说明哪些./configure选项是可用的。。。我认为QEMU的当前版本是2.9。那么你提到的命令,会在Ubuntu包中得到最新的QEMU吗?我要说的是,仅仅因为它包含对C文件的引用,并不意味着它是一个实际的C问题。重新考虑标记的使用。mq_*函数是否可能已移动到librt.so?在/lib/x86_64-linux-gnu/上进行文本搜索表明是这样。因此,在链接时可以添加-lrt。它指示链接器在librt中查找符号