工具链配置

lab通关记录

MIT-6.828实验通关记录

tools

前提:对unix的shell有一定的认识,否则可以观看视频或者自行了解关于文件目录和命令行知识,对于配置报错应该认知到问题在哪,对症下药

参考官网:https://pdos.csail.mit.edu/6.828/2017/tools.html

基本环境:mac下vmware fusion8 + ubuntu20.04+python2.7

工具链:测试得知环境为64位,进行32位补丁

1
sudo apt-get install gcc-multilib

qemu模拟器安装编译:

1
2
3
4
5
6
git clone http://web.mit.edu/ccutler/www/qemu.git -b 6.828-2.3.0                               #如果你报错根据报错提示安装git即可

./configure --disable-kvm --disable-werror --target-list="i386-softmmu x86_64-softmmu"#qemu目录下

make && make install#make install是必须的,如果遇到permission denied则加入sudo来临时增加权限

报错:

  1. configure配置时lib缺失等工具链不完善,则根据报错进行搜索,比如:

    1
    apt-cache search glib

    根据搜索结果决定安装,给出部分情况:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    glib: sudo apt-get install libglib2.0-dev#dev就没错

    libtool : sudo apt-get install libtool-bin #这个libtool broken报错在第一行,很容易错过没发现

    pixman: sudo apt-get install libpixman-1-dev  

    zlib: sudo apt-get intall zlib1g-dev

    c++ compiler: sudo apt-get install g++
  2. Make编译错误:

    1
    2
    3
    4
    /usr/bin/ld: qga/commands-posix.o: in function `dev_major_minor':
    /home/yunwei/qemu/qga/commands-posix.c:633: undefined reference to `major' &&
    /usr/bin/ld: /home/yunwei/qemu/qga/commands-posix.c:634: undefined reference to `minor'
    collect2: error: ld returned 1 exit status

    找到major和min函数的头文件,在相应commands-posix.c文件下进行头文件导入 :

    1
    #include<sys/sysmacros.h>

如果make install之后最后几行显示命令和相应的目录,则可视为配置成功

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020-2024 环烷烃
  • Visitors: | Views:

我很可爱,请我喝一瓶怡宝吧~

支付宝
微信