【CS143 Compiler】1. 环境配置、踩坑

编程入门 行业动态 更新时间:2024-10-09 01:23:55

【CS143 Compiler】1. <a href=https://www.elefans.com/category/jswz/34/1771403.html style=环境配置、踩坑"/>

【CS143 Compiler】1. 环境配置、踩坑

CS143 环境配置

斯坦福 CS143 Compiler 课程。

课程主页在 :StanfordOnline+SOE.YCSCS1+2T2020/home。

它提供了一个预配置的虚拟机,是基于 Ubuntu 古老版本的 Bodhi,这个虚拟机必须跑在 x86 platform 下,我的 M1 Pro mbp 尝试了两个下午后放弃了。

CS143 的远古 VM

今天装 CS143 提供的虚拟机,由于这是 x86 下创建的,我 arm 架构的 mbp 没法跑。。我应该能猜到的,毕竟是十年前的课,肯定考虑不到十年后 Apple 能把 arm 的性能和生态拉到这种地步。

虚拟机是基于 Ubuntu 的 Bodhi,闻所未闻,于是被迫打开我的暗影精灵 5 来跑。

打算开 vscode ssh 到虚拟机里 coding,查了查才知道桥接网卡可以把虚拟机暴露到本机的内网。

然后又遇到一个问题,这个镜像居然没有 ssh server!瞬间有不好的预感。

sudo apt-get install openssh-server,果然不行。

于是拉一下列表看看 sudo apt-get update,直接歇了,报一堆 404,估计是系统实在是太老,Ubuntu 已经停止对它的支持了。

查了查资料才知道这种已经不受长期支持的系统也仍然提供软件源的,只不过需要从 old-releases.ubuntu/ubuntu 下拿。

Ubuntu 的软件源 config 在 /etc/apt/sources.list,需要把所有三级域换成 old-releases.

一些坑

除此之外,也提供了直接在 Linux 系统下配置所需环境的方法,都在课程主页里。

不过,由于这门课程确实是有些古老了,还有一些坑要踩。

我使用的是 ubuntu-18.04 with wsl2,16.04 版本莫名其妙无法使用 spim。

第一个坑见这个 discussio。

第二个坑是关于 flex 的,课程主页直接写了 sudo apt install flex,但现在的 flex 在 C/C++ 兼容性上存在一些差异,我们最好使用虚拟机中的版本。解决方法也比较简单,你可以直接 sudo apt install flex-old

最后 wsl 跑在我的 windows 本上,但还是习惯用 mac 写代码,可以将它们放在一个局域网中,例如一个 wifi 下。

在 windows 中通过 ssh 反向代理连接 mac 的 ssh server,也就是把 wsl 的 22 端口映射到 mac 的某个端口(例如 2222):

ssh -R macHost:2222:wslHsot:22 gaolihai@macHost

然后就可以在 mac 上连接本地 2222,这会直接转发到 windows wsl 的 22 端口。

ssh gaolihai@localhost -p 2222

两次 ssh

我的 windows 本太重,一般是拿着 mac 出去,但我的环境在 windows 上。

如果想在外边访问到 windows,可以使用一个具有公网 IP 的服务器,先用 windows ssh reverse proxy 到服务器上,然后配置 vscode 经由公网服务器两次 ssh 到我的 windows 本的 wsl 里。

Host jumperHostName 1.117.228.194User gaolihaiPort 22Host compilersHostname localhostUser gaolihaiPort 2222ProxyJump jumper

更多推荐

【CS143 Compiler】1. 环境配置、踩坑

本文发布于:2024-02-06 14:58:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749937.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:环境   Compiler   踩坑

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!