ubuntu 15.04 64 位中 qemu 0.14.1 的 makefile 错误

Posted

技术标签:

【中文标题】ubuntu 15.04 64 位中 qemu 0.14.1 的 makefile 错误【英文标题】:Errors in makefile for qemu 0.14.1 in ubuntu 15.04 64 bit 【发布时间】:2015-06-09 09:38:22 【问题描述】:

我正在尝试在 ubuntu 15.04 64 位系统中安装 qemu-0.14.1。在给出 make 命令时,它会给出以下错误:

../slirp/misc.o:在函数memset': /usr/include/x86_64-linux-gnu/bits/string3.h:86: warning: memset used with constant zero length parameter; this could be due to transposed parameters ../qemu-timer.o: In functiondynticks_start_timer'中: /home/shruti/Downloads/qemu-0.14.1/qemu-timer.c:862:未定义对timer_create' ../qemu-timer.o: In functiondynticks_rearm_timer'的引用: /home/shruti/Downloads/qemu-0.14.1/qemu-timer.c:901:未定义对timer_gettime' /home/shruti/Downloads/qemu-0.14.1/qemu-timer.c:914: undefined reference totimer_settime'的引用 ../qemu-timer.o:在函数dynticks_stop_timer': /home/shruti/Downloads/qemu-0.14.1/qemu-timer.c:880: undefined reference totimer_delete' collect2:错误:ld 返回 1 个退出状态 Makefile:347: 目标“qemu-system-arm”的配方失败 make[1]: * [qemu-system-arm] 错误 1 Makefile:84:目标“subdir-arm-softmmu”的配方失败 make: * [subdir-arm-softmmu] 错误 2

任何人都可以指导正确的步骤以及为什么此错误与计时器对象文件有关。

【问题讨论】:

您所看到的很可能是最近的工具链在编译有错误的代码方面不太宽容。您正在尝试使用 GCC 4.9 来构建与 GCC 4.6 同步的源代码。您可以尝试安装 GCC 4.6 并使用它进行构建。 【参考方案1】:

通过编辑Makefile和Makefile.target这两个文件来解决问题

LIBS+=-lz -lrt -lm

【讨论】:

能否提供更多详细信息?答案很简短,没有说得太多【参考方案2】:

检查您是否安装了正确的 GCC/G++ 版本。 我的建议是为您的应用程序使用默认的 gcc 7。

在 Ubuntu 上安装 GCC 和 C 编译器,分步说明

安装多个 C 和 C++ 编译器版本:

$ sudo apt install build-essential
$ sudo apt -y install gcc-7 g++-7 gcc-8 g++-8 gcc-9 g++-9

使用 update-alternatives 工具创建多个 GCC 和 G++ 编译器替代方案的列表:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9

检查您的 Ubuntu 系统上可用的 C 和 C++ 编译器列表,并通过输入相关选择号选择所需的版本:

$ sudo update-alternatives --config gcc

替代 gcc 有 3 种选择(提供 /usr/bin/gcc)。

  Selection    Path            Priority   Status
------------------------------------------------------------
  0            /usr/bin/gcc-9   9         auto mode
  1            /usr/bin/gcc-7   7         manual mode
* 2            /usr/bin/gcc-8   8         manual mode
  3            /usr/bin/gcc-9   9         manual mode

按下以保留当前选择[*],或输入选择编号: 对于 C++ 编译器执行:

$ sudo update-alternatives --config g++

替代 g++ 有 3 种选择(提供 /usr/bin/g++)。

  Selection    Path            Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++-9   9         auto mode
  1            /usr/bin/g++-7   7         manual mode
  2            /usr/bin/g++-8   8         manual mode
  3            /usr/bin/g++-9   9         manual mode

按下以保留当前选择[*],或输入选择编号: 每次切换后检查您当前选择的编译器版本:

$ gcc --version
$ g++ --version

【讨论】:

以上是关于ubuntu 15.04 64 位中 qemu 0.14.1 的 makefile 错误的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 15.04 64bit 下 steam无法启动

装ubuntu-15.04-desktop-amd64遇到的syslinux的问题

Ubuntu 15.04 + CUDA7.5 + Caffe 配置笔记

在 Ubuntu 15.04 上从 NetBeans 8.0.2 卸载或禁用 JRebel

我是将64位的ubuntu 15.04装到了U盘里,UEFI启动的,每次开机用一段时间就死机了是怎

链接器错误,在 ubuntu 15.04 上使用 OpenCV 和 Eclipse CDT