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课程的实验, 配置环境时碰到一些坑,网上相关资料比较零散,所以这里总结一下。
环境配置
2020/7/18更新:
之前做实验的时候用的是19.04版本,有挺多问题,建议安装20.04,步骤如下:
安装虚拟机以及ubuntu:https://blog.csdn.net/qq_35623773/article/details/89893853
安装完的Ubuntu无法全屏,Ubuntu全屏设置教程:https://blog.csdn.net/web_snail/article/details/96424105
默认源的下载速度太慢,20.04换源:https://www.cnblogs.com/lynn-z/p/12874504.html
windows与ubuntu文件互传:
https://blog.csdn.net/rooki_men/article/details/78967840
https://blog.csdn.net/qq_37040516/article/details/87688408
建议两种方法都使用,因为第一种方法有时候会导致系统卡住。
安装gcc
sudo apt-get install build-essential
如果编译的时候产生类似如下报错:
Error “gnu/stubs-32.h: No such file or directory” while compiling Nachos source code
安装Visual Studio Code
做实验
原文:
CSAPP的实验都是在Linux下完成的,所以需要安装VM以及Ubuntu,对应的教程如下:https://blog.csdn.net/qq_35623773/article/details/89893853
安装完的Ubuntu无法全屏,Ubuntu全屏设置教程:https://blog.csdn.net/web_snail/article/details/96424105
有时候需要Windows和Ubuntu互传文件,教程如下:https://blog.csdn.net/qq_37040516/article/details/87688408
在datalab-handout使用make命令后产生报错
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
sudo apt-get install gcc-multilib
但是依然产生报错
正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 没有可用的软件包 gcc-multilib,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃, 或者只能在其他发布源中找到
修改源
https://blog.csdn.net/API1_7/article/details/94735318
https://www.cnblogs.com/cymwill/p/10293205.html
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo gedit /etc/apt/sources.list
再次安装
正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 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文件。
- 直接修改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