看过CSAPP后做lab巩固一下学过的东西,但因为实验环境是unix,这里不建议大家安装虚拟机,可以使用Docker的linux容器来搭建实验环境。
原环境配置
下载lab
lab下载地址:CS:APP3e, Bryant and O'Hallaron,
找到每个lab的Self-Study Handout下载下来就好了
具体如何安装可以看这篇博客CSAPP实验环境搭建_古玩的博客-CSDN博客_csapp实验环境搭建
这里要注意每次实验都要进行重新启动容器等一系列操作
重新运行容器
docker container start csapp_env
进入并打开bash
docker container exec -it csapp_env /bin/bash
macOS 新环境配置
这里记录我环境的启动和关闭
启动
docker start a9814f95020f
docker exec -it a9814f95020f /bin/bash
关闭
exit
如何验证题目正确
由于博主没提到安装之后怎么进行下一步的操作,这里我补充一下
在这里可以去了解一下Linux基础命令Linux基础 — Linux Tools Quick Tutorial
1.在实验之前可以阅读README了解实验要求
2.阅读bits.c的注释,并在代码处修改
3.验证题目
首先cd到目标目录
root@b15490941199:~# cd /csapp/datalab-handout
使用make命令来编译项目
⚠️这里要注意一下每次修改过代码后都要使用make重新编译
(终端花里胡哨的是是用了iterm2 + on my zsh实现的)
使用dlc编译器检查bits.c版本是否符合编码要求
./dlc bits.c
编译btest检测所有程序的正确性
./btest
btest还有其他用法
验证函数bitXor正确性
./btest -f bitXor
如果结果如上就代表正确
测试所有函数,不含错误信息
./btest -g
错误解决
在操作中我也遇到几个问题这里解决一下
make: command not found
yum -y install gcc automake autoconf libtool make
或者
apt-get install gcc automake autoconf libtool make