目录
一、 引言
二、 正文
1. 添加编译后事件
2. xmake.lua的脚本域
3. 补充知识
三、 结语
写在前面
原创不易,每一篇文章都是花费大量的时间编写而成,个人认为都是干货满满!如果各位觉得对自己有帮助,请动动您发财的小手,关注本账号, 我将持续为大家带来优质内容!
所有内容首发都将在公众号【飞翔的SA】,也请大家移步公众号阅读,您的支持是我坚持的动力。
一、 引言
在软件开发和部署的某些时刻,我们需要执行一些特定操作,才能保证软件可以正常运行,例如包含第三方库的工程中,生成可执行程序后,需要将第三方库中的动态库拷贝至输出目录下,可执行程序才能运行。每次编译完成后都进行手动拷贝,非常枯燥且易错,xmake作为一款现代化的跨平台构建工具,充分考虑了这类需求,在配置、加载、编译、运行、打包等各个动作执行的过程中,允许开发者添加自定义脚本并自动执行,将一些特定操作纳入自动化体系,大幅提升开发效率与流程规范性。
本文就以添加编译后事件为例,介绍xmake中添加自定义脚本的方式和xmake脚本域特征。
文中使用的软件及版本:vs2019,xmake3.0.6,请预先安装!
二、 正文
1. 添加编译后事件
在“05.国产构建工具之王xmake——添加第三方库”文中,我们创建一个名为“Triangle”工程,此工程是一个基于GLFW库和OpenGL在windows窗口中渲染三角形的程序。
在此工程的xmake.lua 中,我们通过 add_links(“glfw3”) 添加了第三方库文件glfw3.lib。glfw3.lib为静态库文件,会被整体编译到可执行程序Triangle.exe中,可执行程序的体积会比较大,而且包含的静态库越多,体积越庞大,所以一般我们会使用动态链接的方式构建工程。
修改Triangle的xmake.lua如下图所示,我们通过添加动态库的引导库glfw3dll.lib,将链接方式修改为动态链接。

执行构建,通过。

执行运行,报错
之所以报错,是因为我们修改为动态链接的形式后,运行Triangle.exe时,Triangle.exe需要检索依赖的动态库glfw3.dll, 一旦检索失败就会出现上图所示的运行错误。可执行程序检索依赖的动态库时,会按照可执行程序所在目录、环境变量path中目录、系统库目录的优先级检索,所以要解决运行报错的问题,只需要将glfw3.dll拷贝到其中一个目录中即可,为了不污染系统目录,我们一般会选择可执行程序目录。如图所示


