从Cmake换到Xmake

<0x00> 为啥不用Cmake

怎么说呢Cmake确实不是很好用,虽然说我还是稍微懂点shell命令的,但用着就是感觉很怪
虽然Cmake很强大,而且经过这么多年的发展,Cmake的社区支持也非常丰富
但对于初学者,Cmake的各种函数还是显得略微晦涩难懂
而且CmakeVS 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的插件
Xmake插件截图
安装上就行了

<0x04> 由Xmake创建项目

先新建个文件夹,作为存放项目代码的文件夹
VS Code中打开这个文件夹
快捷键Ctrl+Shift+P打开命令窗口,输入Xmake
命令窗口

选择XMake: CreateProject这个选项
选择后一般右下角会有个窗口,提示没有 xmake.lua 文件,询问是否创建,创建就是了
创建提示

然后按你需要的选择配置,我通常选择 C++ 的命令行应用
选语言
选应用类型

之后,项目的文件夹结构就创建好了
项目文件结构
里面的xmake.lua就是配置文件,里面已经写好了基本的配置

如果有include的文件,创建个文件夹放然后在配置文件指明就好
可以直接参考[<0x01>](#<0x01> 为什么使用Xmake)部分的配置文件

之后创建新项目就按这个方法就可以了,轻松加愉快
编译时按下面的Build或者就可以
调试就是打完断点,然后按下面的🐞图标
下边的栏

Licensed under CC BY-NC-SA 4.0