在 Clion 上连接 WSL2 并使用 XMake 开发 C++
Warning本文发布于 2023/02/01,内容可能已过时。
开始
用了太多 JB 家的产品,想着在学生优惠的期限内都用个遍,那在 C++中它正好有 Clion,而且还用不习惯 MS 的 VS,VSCode 写项目又有点轻,那就 Clion 用着试试吧
如果想编译在 Linux 环境的话,WSL 是 win 用户的一大选择
一些版本:Clion:2022.3.2
、WSL2: Ubuntu 20.4
、gcc:v11.1.0 on Ubuntu
、XMake:v2.7.5
肯定错漏百出)之后再改了
将 WSL 作为工具链
只要在设置 -> 构建 -> 工具链 -> +号新建中选择 WSL,它就会自动检测到 WSL 的发行版等配置 (在这之前要去 WSL 先安装好 C++工具链 (g++,gdb,cmake 这些的)
安装 XMake
XMake.io 主要用于 C/C++ 的项目配置,还有自带的包管理。它不用写繁琐的 cmake 配置,虽然是 XMake.lua
作为配置文件,但没多少 lua 的语法,它还能生成 CMakeLists.txt
来兼容和 IDE 适配
XMake 可以只需安装在 win 上,在 Github releases 可找到安装包,或用 scoop:scoop install XMake
)如果不用 scoop 的话,还需要将 XMake 的目录放进环境变量中
然后需要在 Clion 上下载插件:XMake,就可以在新建 Clion 项目中看到 XMake 了
新建 XMake 项目
在新建项目之前,要先指定 XMake 的目录
项目结构
XMake.lua
是 XMake 的配置文件,src/main.cpp
是项目的入口文件。这时候 Clion 需要 CMakeLists.txt
才能配置项目,而 XMake 正好能生成 CMakeLists,在工具栏的 XMake -> Update CMakeLists
但通常此时去生成或构建会报错:
没找到工具链,而且生成平台也是检测到的 Win。这时就要去终端手动指定成 Linux 平台:
这时再生成或构建项目时,就能看到 ok 了 (这里的 MS VS 不是必须的)
回到 src/main.cpp
,Clion 会提示选择 CMakeLists.txt
,只要选上刚生成的就行了,并打开 CmakeLists 选上自动重新加载 CMake 项目,这样每当 CMakeLists 有变化时都会自动加载上
铛铛~
运行项目
这里有两种方式去运行,一是直接运行 Clion 根据 CMake 生成的运行配置 (运行键)。在它的构建输出可以看到:
已经正确地用 WSL 来生成出 Linux 可执行文件了,可以在终端验证:
或是用 XMake 的构建运行。需要先 XMake -> Build Project
,然后在 Clion 的 运行/调试 配置
中新建一个运行配置,选上 XMake 即可)但好像连上 WSL 的 XMake 运行会报错
运行单文件
为了保证运行单文件时头文件能正确引用上,需要在 CMakeLists 里添加上 add_executable(xxx src/test/xxx.cpp)
,然后运行在 main 函数旁的三角按钮:运行 xxx
或者下载 CLion 插件 C/C++ single file execution
,在 cpp 文件中右键,选上最后一行的 add executable for single C++ file
,它就会自动把这个文件添加到 CMakeList 里
添加库、头文件
例如我要写的头文件在 src/include
,那就加上 add_includedirs(dir)
Lua 是不讲缩进分级的,这里主要是写给人看,更好地标注
添加第三方库则是:xrepo install xxx
这点在纯 Win 上的话会因为没检测到工具链报错:
More
但其实在编译 win 上的话,可以用 Mingw 来构建。需要先指定平台:
但在 xrepo
上,要另外加个参数指定平台,不然它还是会用检测到的默认 Win 平台
差不多单写就这些了,更多其他的还没学到)还得是看文档