c++ xmake构建系统怎么用 c++现代化构建工具【指南】
发布时间 - 2025-12-30 00:00:00 点击率:次xmake构建C++项目只需三步:初始化、编写xmake.lua、执行命令;它跨平台、免手写Makefile/CMakeLists,原生支持C++20模块、PCH和包管理。
用 xmake 构建 C++ 项目,核心就三步:初始化项目、写好 xmake.lua、执行构建命令。它不依赖 CMake 的复杂语法,也不需要手写 Makefile,配置简洁、跨平台、原生支持现代 C++ 特性(如 C++20 模块、预编译头、包管理)。
快速上手:新建并构建一个 C++ 项目
在终端中执行:
-
xmake create -l c++ -t console myproject—— 创建一个带 main.cpp 的控制台项目 cd myproject-
xmake—— 默认编译为 debug 版本,输出在build/ -
xmake run—— 直接运行生成的可执行文件
整个过程无需手动配置编译器或链接选项,xmake 自动探测系统环境(GCC/Clang/MSVC)并选择合适标准(默认 C++17)。
配置 xmake.lua:声明目标与特性
这是 xmake 的核心配置文件,替代了 CMakeLists.txt。例如启用 C++20 并链接第三方库:
add_rules("mode.debug", "mode.release")
target("hello")
set_kind("binary")
add_files("src/*.cpp")
set_languages("cxx20") -- 显式启用 C++20
add_packages("fmt", "nlohmann_json") -- 自动下载并链接
常用设置说明:
-
set_languages("cxx20")或"c23":指定语言标准 -
add_cxxflags("-fconcepts"):添加特定编译器扩展 -
add_defines("NDEBUG"):定义宏 -
add_includedirs("include"):添加头文件搜索路径
集成现代开发需求:模块、PCH、包管理
xmake 原生支持 C++20 Modules 和预编译头(PCH),无需插件:
-
模块支持:在
xmake.lua中启用add_rules("c++.modules"),然后用add_files("src/module.ixx")添加模块接口文件 -
预编译头:用
add_headerfiles("src/stdafx.h")+set_pcheader("src/stdafx.h")即可自动处理 -
包管理:通过
add_requires("boost", {system = true})优先用系统包,失败则自动从 conan/vcpkg/xmake-repo 拉取
跨平台构建与持续集成友好
xmake 输出统一构建目录,支持多配置并行构建:
-
xmake -p windows -:指定平台、架构、模式
a x64 -m release -
xmake clean -a:清理所有平台构建产物 -
xmake project -k vsxmake:生成 Visual Studio 工程(仅用于编辑,不用于构建) - CI 中只需
xmake install --destdir=./output即可打包可部署产物
所有命令行为一致,Windows/macOS/Linux 上脚本几乎不用修改。
# linux
# js
# json
# windows
# 工具
# mac
# ai
# c++
# macos
# win
# 配置文件
# cos
# lua
# 架构
# include
# 接口
# console
# visual studio
# 只需
# 三步
# 这是
# 也不
# 第三方
# 它不
# 创建一个
# 写好
# 可执行文件
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
如何快速搭建支持数据库操作的智能建站平台?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
个人摄影网站制作流程,摄影爱好者都去什么网站?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
如何彻底删除建站之星生成的Banner?
,交易猫的商品怎么发布到网站上去?
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何在万网自助建站中设置域名及备案?
Android自定义listview布局实现上拉加载下拉刷新功能
php json中文编码为null的解决办法
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
如何在IIS中新建站点并解决端口绑定冲突?
如何快速搭建高效服务器建站系统?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
iOS中将个别页面强制横屏其他页面竖屏
在线制作视频网站免费,都有哪些好的动漫网站?
如何制作一个表白网站视频,关于勇敢表白的小标题?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel怎么实现模型属性的自动加密
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
Python结构化数据采集_字段抽取解析【教程】
轻松掌握MySQL函数中的last_insert_id()
如何在云指建站中生成FTP站点?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
网易LOFTER官网链接 老福特网页版登录地址
如何在IIS中新建站点并配置端口与物理路径?
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Laravel中的Facade(门面)到底是什么原理
实例解析angularjs的filter过滤器
活动邀请函制作网站有哪些,活动邀请函文案?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
常州企业网站制作公司,全国继续教育网怎么登录?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
javascript基于原型链的继承及call和apply函数用法分析


a x64 -m release