- Windows 10 22H2
- CLion 2022.3.1
- Ubuntu 20.04 (Microsoft Store内的WSL发行版)
一、下载WSL,换源,切换到WSL2
1.1 保证windows版本
在设置->系统->关于中查看
- 必须是win10及以上
- 对于x64系统:版本1903或更高版本,以及内部版本18362或更高版本
- 对于ARM64系统:2004或更高版本,内部版本19041或更高
- 低于18362的内部版本不支持WSL2
1.2 开启必要设置
依次点击
控制面板–>程序–>程序和功能–>启用或关闭Windows功能
然后勾选
√ Hyper-V
√ 适用于Windows的Linux子系统
√ 虚拟机平台
(docker也是需要开启这些选项)
1.3 下载WSL Ubuntu22.04
直接在Microsoft Store搜索Ubuntu,下载这个版本即可。
然后可以在开始界面->最近添加里面找到,点开后,设置好用户名和密码,就可以使用Ubuntu命令行了。
1.4 操作文件
更推荐使用Linux命令行操作,但是如果想要界面化一点,windows文件管理器进去操作也未尝不可(不过可能会有权限不足的情况)
1.4 换国内源
注意下载什么版本的Ubuntu就要用对应的国内源,有的博文没有说自己是什么版本的,注意甄别。
正确的做法是:
在清华大学开源软件镜像站的Ubuntu镜像中选择自己的Ubuntu版本
1.4.1 命令替换(未亲测)
直接在命令行输入命令执行即可
1.4.2 手动替换
Ubuntu命令行中
cd ~
cd /etc/apt
sudo cp sources.list sources.list.bak # 备份一下源文件
vim sources.list
进入编辑界面后,按下gg
,会跳转到文本的开头。再按下dG
会删光光标后的所有行的内容。这样所有内容都被清空了。
复制手动替换部分的内容,鼠标移动到命令行界面后右键点一下,就可以粘贴上去。(或者按i、a、o也可。)
然后按ESC
,再按下:wq!
就可以退出啦。
当然,你也可以尝试一下在windows文件管理器中,在 /etc/apt
中找到sources.list
,直接用记事本打开写入,虽然保存时可能会遇到权限错误。
1.5 更新镜像源列表sources.list
更新仓库和软件,使用apt或者apt-get都行
sudo apt update
sudo apt upgrade
sudo apt-get update
sudo apt-get upgrade
1.6 切换WSL2
wsl2的设计与wsl1有很大的不同。它包括一个真正的Linux内核,而不仅仅是一个兼容层。但是你wsl1和wsl2是互通的,
win+R打开cmd,wsl -l -v
会显示你的各wsl版本。
注意到VERSION列,我这里已经是2,你的如果是1,可以通过wsl --set-version <你的用的发行版> 2
升级为wsl2,这需要几分钟的时间
wsl --set-version Ubuntu-22.04 2
如果要将WSL 2设置为默认体系结构,则可以使用以下命令
wsl --set-default-version 2
二、下载构建必须的库,下载基于LLVM的C编译器–lcc,进行构建
2.1 安装cmake、gcc、clang(以及可选的build-essentials软件包)
sudo apt-get install cmake gcc clang gdb build-essential
2.2 基于LLVM的C编译器–lcc编译步骤
2.2.1 安装llvm14。(注意,ubuntu22.04应该自带llvm14了,所以该语句不会再装一遍)
sudo apt-get -y install llvm-14
但是这样还不行,没有llvm-config等工具
所以再装一个llvm工具,项目的readme没有说这点
sudo apt-get -y install llvm
2.2.2 Clone仓库,进行构建
对readme的内容做了些修改:
git clone https://github.com/iiicp/lcc.git
# CMake进行构建
cd lcc
mkdir build
cd build
cmake .. -DLLVM_DIR="Path to Your LLVM CMake dir"
# eg: cmake .. -DLLVM_DIR=/usr/lib/llvm-14/lib/cmake/llvm
注意如果你遇到像我这样的missing错误,需要再下载一个zlib库(参考:《Ubuntu20.04编译安装Opencv4.5.5安装包报错:Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)》)。
sudo apt install zlib1g-dev
最后大功告成!
make
./lcc ../tests/c/stmt.c # 使用lcc
三、CLion用SSH连接WSL
主要参考:《Windows 10 配置Clion+WSL2环境》的第二步-配置WSL(Ubuntu)
也参考了一点点《Clion使用:在windows下结合wsl进行linux开发》,但似乎没啥用。
然后要注意的一点是CLion2022还没有对Ubuntu22.04优化好,导致现在只能用SSH远程连接,而不是直接识别出WSL。
CLion SSH远程连接后的文件会在/tmp中有个缓存。