导读:本期聚焦于小伙伴创作的《如何使用xmake作为现代化的c++构建工具?对比CMake有哪些优势?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何使用xmake作为现代化的c++构建工具?对比CMake有哪些优势?》有用,将其分享出去将是对创作者最好的鼓励。

在c++项目开发过程中,构建工具承担着代码编译、依赖管理、多平台适配等核心工作。CMake作为长期占据主流地位的构建工具,虽然生态成熟,但语法偏向声明式,配置复杂,依赖管理需要额外配合其他工具,给开发者带来不少负担。xmake是一款基于Lua的现代化c++构建工具,它内置了包管理、自动检测编译环境、简洁的配置语法等特性,能够大幅简化构建流程。

如何使用xmake作为现代化的c++构建工具?对比CMake有哪些优势?

xmake基础环境搭建

首先需要在本地安装xmake,不同系统的安装方式如下:

  • Windows系统:可以直接从官网下载安装包,或者通过PowerShell执行安装命令
  • macOS系统:使用brew包管理器执行安装命令
  • Linux系统:通过对应的包管理器或者官方提供的安装脚本完成安装

安装完成后可以在终端执行以下命令验证是否安装成功:

xmake --version

基础c++项目使用xmake构建

我们以一个最简单的单文件c++项目为例,项目结构如下:

hello_xmake/
└── main.cpp

main.cpp的内容如下:

#include <iostream>

int main() {
    std::cout << "Hello xmake!" << std::endl;
    return 0;
}

在hello_xmake目录下新建xmake.lua配置文件,内容如下:

-- 设置项目名称和语言
set_project("hello_xmake")
set_languages("c++17")

-- 添加可执行目标
target("hello")
    set_kind("binary")
    add_files("main.cpp")

执行以下命令即可完成构建和运行:

# 配置构建环境
xmake config
# 执行构建
xmake
# 运行生成的可执行文件
xmake run hello

对比CMake的相同场景配置

如果使用CMake完成同样的项目,需要新建CMakeLists.txt文件,配置内容如下:

cmake_minimum_required(VERSION 3.10)
project(hello_cmake)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(hello main.cpp)

CMake的构建流程为:

mkdir build && cd build
cmake ..
make
./hello

对比可以看出,xmake的配置文件语法更简洁,不需要额外创建build目录,构建命令更统一,整体流程更顺畅。

xmake的核心优势

内置包管理能力

CMake本身没有内置包管理,需要配合vcpkg、conan等第三方工具才能实现依赖安装,配置步骤繁琐。xmake内置了包管理功能,直接在配置文件中声明依赖即可自动下载安装。比如项目需要依赖fmt库,只需要在xmake.lua中添加:

target("hello")
    set_kind("binary")
    add_files("main.cpp")
    -- 添加fmt依赖
    add_packages("fmt")

对应的main.cpp可以使用fmt库:

#include <fmt/core.h>

int main() {
    fmt::print("Hello {}!n", "xmake");
    return 0;
}

执行xmake命令时,xmake会自动从官方包仓库下载fmt库并完成编译链接,不需要额外手动配置。

更简洁的配置语法

xmake使用Lua作为配置语言,语法灵活且简洁,支持条件判断、循环等逻辑,而CMake的语法偏向声明式,复杂逻辑的配置难度更高。比如需要针对不同平台设置不同的编译选项,xmake的配置如下:

target("hello")
    set_kind("binary")
    add_files("main.cpp")
    -- 如果是Windows平台,添加宏定义
    if is_os("windows") then
        add_defines("PLATFORM_WINDOWS")
    -- 如果是Linux平台,添加宏定义
    elseif is_os("linux") then
        add_defines("PLATFORM_LINUX")
    end

跨平台支持更友好

xmake支持Windows、macOS、Linux、Android、iOS等多个平台,不需要像CMake那样针对不同平台编写大量适配代码,内置的自动检测机制能够自动识别当前编译环境,适配对应的编译器和编译参数。

多目标项目管理

对于包含多个目标的项目,比如同时生成可执行文件和静态库,xmake的配置同样简洁。假设项目结构如下:

multi_target/
├── xmake.lua
├── src/
│   ├── main.cpp
│   └── utils.cpp
└── include/
    └── utils.h

对应的xmake.lua配置如下:

set_project("multi_target")
set_languages("c++17")

-- 静态库目标
target("utils")
    set_kind("static")
    add_files("src/utils.cpp")
    add_includedirs("include")

-- 可执行文件目标,依赖utils库
target("app")
    set_kind("binary")
    add_files("src/main.cpp")
    add_deps("utils")
    add_includedirs("include")

执行xmake即可同时构建静态库和可执行文件,依赖关系会自动处理,不需要手动指定链接顺序。

总结

xmake作为现代化的c++构建工具,在语法简洁性、内置包管理、跨平台适配等方面相比CMake有明显优势,能够大幅降低c++项目的构建配置成本。对于新项目或者希望简化构建流程的存量项目,xmake都是一个值得尝试的选择。开发者可以通过简单的配置快速上手,逐步体验其丰富的功能特性,提升日常开发效率。

xmakec++CMake构建工具修改时间:2026-06-14 02:00:39

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。