CMU 15-213 Intro to Computer Systems 实验环境配置

课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html

课程资料:https://github.com/EugeneLiu/translationCSAPP

课程视频:https://www.bilibili.com/video/av31289365/

最近开始做CSAPP课程的实验, 配置环境时碰到一些坑,网上相关资料比较零散,所以这里总结一下。

环境配置

  1. CSAPP的实验都是在Linux下完成的,所以需要安装VM以及Ubuntu,对应的教程如下:https://blog.csdn.net/qq_35623773/article/details/89893853

  2. 安装完的Ubuntu无法全屏,Ubuntu全屏设置教程:https://blog.csdn.net/web_snail/article/details/96424105

  3. 有时候需要Windows和Ubuntu互传文件,教程如下:https://blog.csdn.net/qq_37040516/article/details/87688408

  4. 在datalab-handout使用make命令后产生报错

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    gcc -O -Wall -m32 -lm -o btest bits.c btest.c decl.c tests.c
    In file included from btest.c:16:
    /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: 没有那个文件或目录
    #include <bits/libc-header-start.h>
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    In file included from decl.c:1:
    /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: 没有那个文件或目录
    #include <bits/libc-header-start.h>
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h:194,
    from /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/syslimits.h:7,
    from /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h:34,
    from tests.c:3:
    /usr/include/limits.h:26:10: fatal error: bits/libc-header-start.h: 没有那个文件或目录
    #include <bits/libc-header-start.h>
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:11:btest] 错误 1

    查阅资料:https://blog.csdn.net/qq_32693119/article/details/80535662

    得到应该安装gcc

    1
    sudo apt-get install gcc-multilib

    但是依然产生报错

    1
    2
    3
    4
    5
    6
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树
    正在读取状态信息... 完成
    没有可用的软件包 gcc-multilib,但是它被其它的软件包引用了。
    这可能意味着这个缺失的软件包可能已被废弃,
    或者只能在其他发布源中找到

    修改源

    https://blog.csdn.net/API1_7/article/details/94735318

    https://www.cnblogs.com/cymwill/p/10293205.html

    1
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    1
    sudo gedit /etc/apt/sources.list

    再次安装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树
    正在读取状态信息... 完成
    有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
    因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
    包尚未被创建或是它们已被从新到(Incoming)目录移出。
    下列信息可能会对解决问题有所帮助:

    下列软件包有未满足的依赖关系:
    gcc-multilib : 依赖: gcc-7-multilib (>= 7.3.0-12~) 但是它将不会被安装
    E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    依然产生报错,最后在https://zhuanlan.zhihu.com/p/82529114得到如下方法:

    • 直接修改makefile文件,将CFLAGS = -O -Wall -m32改为CFLAGS = -O -Wall -m64

    所以目前看来最简单的方法还是修改makefile文件。

vmware虚拟机ubuntu开机黑屏

在做第一个实验的时候,碰到了ubuntu开机黑屏的现象,查阅了相关资料才得以解决,资料如下:

https://www.cnblogs.com/wyh-study/p/12015833.html

https://jingyan.baidu.com/article/1876c8527effc0890a13765b.html

其他参考资料:

https://blog.csdn.net/weixin_38739799/article/details/79395953

https://blog.csdn.net/weixin_43821874/article/details/86480934

Codeblocks背景修改:https://blog.csdn.net/Reegor/article/details/78006967

本文标题:CMU 15-213 Intro to Computer Systems 实验环境配置

文章作者:Doraemonzzz

发布时间:2020年05月10日 - 19:15:00

最后更新:2020年05月14日 - 11:15:27

原始链接:http://doraemonzzz.com/2020/05/10/CMU 15-213 Intro to Computer Systems 实验环境配置/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。