layout: post.cn
title: “xmake v2.6.5 发布,远程编译支持”
tags: xmake lua C/C++ cargo rust remote-compilation
categories: xmake
Xmake 是一个基于 Lua 的轻量级跨平台构建工具。
它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。
它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。
目前,Xmake 主要用于 C/C++ 项目的构建,但是同时也支持其他 native 语言的构建,可以实现跟 C/C++ 进行混合编译,同时编译速度也是非常的快,可以跟 Ninja 持平。
Xmake = Build backend + Project Generator + Package Manager
新特性介绍
远程编译支持
新版本提供了远程编译支持,我们可以通过它可以远程服务器上编译代码,远程运行和调试。
服务器可以部署在 Linux/MacOS/Windows 上,实现跨平台编译,例如:在 Linux 上编译运行 Windows 程序,在 Windows 上编译运行 macOS/Linux 程序。
相比 ssh 远程登入编译,它更加的稳定,使用更加流畅,不会因为网络不稳定导致 ssh 终端输入卡顿,也可以实现本地快速编辑代码文件。
甚至我们可以在 vs/sublime/vscode/idea 等编辑器和IDE 中无缝实现远程编译,而不需要依赖 IDE 本身对远程编译的支持力度。
开启服务
$ xmake service
<remote_build_server>: listening 0.0.0.0:90091 ..
我们也可以开启服务的同时,回显详细日志信息。
$ xmake service -vD
<remote_build_server>: listening 0.0.0.0:90091 ..
以 Daemon 模式开启服务
$ xmake service --start
$ xmake service --restart
$ xmake service --stop
配置服务端
我们首先,运行 xmake service
命令,它会自动生成一个默认的 service.conf
配置文件,存储到 ~/.xmake/service.conf
。
然后,我们编辑它,修复服务器的监听端口(可选)。
{
logfile = "/Users/ruki/.xmake/service/logs.txt",
remote_build = {
server = {
listen = "0.0.0.0:90091"
}
}
}
配置客户端
我们还是编辑这个文件 ~/.xmake/service.conf
,配置客户端需要连接的服务器地址。
{
logfile = "/Users/ruki/.xmake/service/logs.txt",
remote_build = {
client = {
connect = "192.168.56.101:90091",
}
}
}
导入给定的配置文件
我们也可以通过下面的命令,导入指定的配置文件。
$ xmake service --config=/tmp/service.conf
连接远程的服务器
接下来,我们只需要进入需要远程编译的工程根目录,执行 xmake service --connect
命令,进行连接