<0x00> 为啥不用Cmake
怎么说呢Cmake确实不是很好用,虽然说我还是稍微懂点shell命令的,但用着就是感觉很怪
虽然Cmake很强大,而且经过这么多年的发展,Cmake的社区支持也非常丰富
但对于初学者,Cmake的各种函数还是显得略微晦涩难懂
而且Cmake在VS Code的环境下报错代码会很日怪
(也可能是我没装好对应的插件,反正看报错挺费脑子的)
<0x01> 为什么使用Xmake
Xmake使用lua作为脚本语言,整体看着能更好理解,并且更加语句更少
我常用的Cmake配置文件
# CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)
project(Course VERSION 0.1.0)
include(CTest)
enable_testing()
# 指定文件转编码为GBK
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexec-charset=GBK")
# 指定编译器和标准
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_CXX_STANDARD 17)
# 添加include路径
include_directories(include)
aux_source_directory(src SRC)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
add_executable(${PROJECT_NAME} ${SRC})
换成xmake.lua的等价配置文件
--xmake.lua
add_rules("mode.debug", "mode.release")
target("xtest")
set_symbols("debug")
--指定文件转编码为GBK
add_cxxflags("-fexec-charset=GBK")
set_kind("binary")
--指定C++标准
set_languages("c++17")
--添加inlude路径
add_includedirs("include")
add_files("src/*.cpp")
是不是确实干净很多?而且更加易懂?
所以说嘛,人不能折磨自己,如果刚刚打算跑C++的多文件编译,我强烈推荐用Xmake
在文档中提到Xmake的构建效率可以达到ninja的水平,这个在我的使用中似乎并未体现
(可能是我的项目相对比较小)
总之Xmake更现代,对很多东西都有很好的原生支持,具体可以看项目文档
<0x02> 安装Xmake
如果有配置winget可以直接敲下面的命令
winget install xmake
也可以去 Github-xmake项目 下载安装包
直接安装就可以了,全默认就可以
<0x03> VS Code的配置
VS Code的配置也很简单,仅需安装一个叫Xmake的插件
安装上就行了
<0x04> 由Xmake创建项目
先新建个文件夹,作为存放项目代码的文件夹
在VS Code中打开这个文件夹
快捷键Ctrl+Shift+P打开命令窗口,输入Xmake
选择XMake: CreateProject这个选项
选择后一般右下角会有个窗口,提示没有 xmake.lua 文件,询问是否创建,创建就是了
然后按你需要的选择配置,我通常选择 C++ 的命令行应用

之后,项目的文件夹结构就创建好了
里面的xmake.lua就是配置文件,里面已经写好了基本的配置
如果有include的文件,创建个文件夹放然后在配置文件指明就好
可以直接参考[<0x01>](#<0x01> 为什么使用Xmake)部分的配置文件
之后创建新项目就按这个方法就可以了,轻松加愉快
编译时按下面的Build或者▶就可以
调试就是打完断点,然后按下面的🐞图标![]()