目录
一、引言
二、正文
1. msvc工具链目录结构
2. msvc 工具链定义——xmake.lua
3. msvc 工具链定义——check.lua
4. msvc工具链定义——load.lua
三、结语
写在前面
原创不易,每一篇文章都是花费大量的时间编写而成,个人认为都是干货满满!如果各位觉得对自己有帮助,请动动您发财的小手,关注本账号, 我将持续为大家带来优质内容!
所有内容首发都将在公众号【飞翔的SA】,也请大家移步公众号阅读,您的支持是我坚持的动力。
一、引言
在上一篇文章中,我们介绍了xmake的构建工具链(toolchain)的基础知识,详细说明了toolchain的概念、语法定义和使用方式等基础知识。
本文我们将以xmake内建的msvc构建工具链为例,说明自定义构建工具链的方法和过程,对构建工具链有个更直观的印象。
文中使用的软件及版本:xmake3.0.7请预先安装!
二、正文
1. msvc工具链目录结构
msvc工具链路径: xmake-dev\\xmake\\toolchains\\msvc
msvc工具链源文件:

xmake.lua : msvc toolchain的定义入口源文件
check.lua : on_check的回调函数定义源文件
load.lua : on_load的回调函数定义源文件
2. msvc 工具链定义——xmake.lua
1) 源码:
toolchain(\”msvc\”)
set_kind(\”standalone\”)
set_homepage(\”https://visualstudio.microsoft.com\”)
set_description(\”Microsoft Visual C/C++ Compiler\”)
set_runtimes(\”MT\”, \”MTd\”, \”MD\”, \”MDd\”)
on_check(\”check\”)
on_load(\”load\”)
2) 说明
toolchain(\”msvc\”)
定义一个名为 msvc 的工具链,是 xmake 工具链体系的入口。
set_kind(\”standalone\”)
指定 MSVC 工具链的类型为「独立工具链」。该配置不影响工具链的实际功能,主要用于 xmake 内置文档 / 帮助信息展示,方便开发者查阅工具链官方资料。
set_homepage(\”https://visualstudio.microsoft.com\”)
设置工具链的官方主页链接,属于描述性元信息,该配置不影响工具链的实际功能,主要用于 xmake 内置文档 / 帮助信息展示,方便开发者查阅工具链官方资料。
set_description(\”Microsoft Visual C/C++ Compiler\”)
设置工具链的描述信息,说明该工具链的具体用途。同样是元信息配置,执行 xmake show -l toolchains 等命令时,会显示该描述,帮助开发者识别工具链。
set_runtimes(\”MT\”, \”MTd\”, \”MD\”, \”MDd\”)
定义 MSVC 支持的 C/C++ 运行时库类型,是这段代码中功能性核心配置
|
运行时标识 |
含义 |
适用场景 |
|
MT |
静态链接 Release 版本的 C 运行时库(libcmt.lib) |
无依赖运行时 DLL,程序体积大,发布方便 |
|
MTd |
静态链接 Debug 版本的 C 运行时库(libcmtd.lib) |
调试阶段使用,包含调试符号,性能稍低 |
|
MD |
动态链接 Release 版本的 C 运行时库(msvcrt.dll) |
程序体积小,需随程序分发对应版本的 VC 运行时 DLL |
|
MDd |
动态链接 Debug 版本的 C 运行时库(msvcrtd.dll) |
调试阶段动态链接,需依赖调试版运行时 DLL |
on_check(\”check\”)
关联工具链的「检查回调函数」,函数定义位于 check.lua 文件中。
on_load(\”load\”)
关联工具链的「加载回调函数」,函数定义位于 load.lua 文件中。

