xmake介绍
xmake
是一个基于 Lua
的轻量级跨平台构建工具,使用 xmake.lua
维护项目构建, 相当于是cmake
的增强版, 其优点如下:
- 简单易用
- 能够像
Make/Ninja
那样可以直接编译项目 - 可以像
CMake/Meson
那样生成工程文件 - 内置的包管理系统来帮助用户解决
C/C++
依赖库的集成使用问题 - 可以实现跟
C/C++
进行混合编译 - 编译速度也是非常的快,可以跟
Ninja
持平 - 简化了交叉编译
环境准备
编译宿主平台: MAC
交叉编译目标平台: Linux, Windows, IOS, Android ….
下载
xmake
1
bash <(curl -fsSL https://xmake.io/shget.text -k)
测试
c
代码准备 文件取名为main
1
2
3
4
5
6
int main(int argc, char** argv){
printf("Hello World!\n");
return 0;
}
在源码目录下新建
xmake.lua
文件并加入以下配置
1
2
3
4
5
6
7
8add_rules("mode.debug", "mode.release")
-- 编译项目名称
target("main")
-- 指定编译形式 可执行文件 还是静态库or动态库
set_kind("binary")
-- 指定需要参与编译的源码文件
add_files("src/main/c/main.c")
编译前的环境准备好了,那接下来 咱们挨个来实现目标平台的可执行文件生成
生成phone平台程序
下载
xcode
直接应用市场下载
给
xmake
指定编译目标平台1
xmake f -p iphoneos
编译程序
1
xmake build main
编译成功后 可以在
build
目录中找到对应的可执行文件
生成Mac平台的程序
给
xmake
指定编译目标平台1
xmake f -p macosx
编译程序
1
xmake build main
编译成功后 可以在
build
目录中找到对应的可执行文件执行程序
由于编译宿主平台刚好是
Mac
所以我们可以直接执行程序1
xmake run main
生成Windows平台程序
下载
mingw-w64
1
brew install mingw-w64
给
xmake
指定编译目标平台1
xmake f -p mingw
或者使用图形化界面配置
1
xmake f --menu
配置完后 我们查看
xmake
的配置显示当前平台为mingw
:编译程序
1
xmake build main
编译成功后 我们可以在
build
目录下找到生成的exe
可执行文件:关于mingw内部编译器
我们打印编译信息会发现
mingw
内部采用的是gcc
编译工具
生成Android平台程序
下载NDK
给
xmake
指定编译目标平台1
xmake f -p android --ndk=ndk路径
此时我们查看
xmake
配置显示当前编译平台为android
:编译程序
1
xmake build main
编译成功后 可以在编译目录查看到生成的可执行文件
xmake常用指令
重置配置
1
xmake f -c
指定交叉编译工具
1
2
3xmake f --toolchain=clang
或者
xmake f --toolchain=gcc查看当前工程信息和xmake信息
1
xmake show
编译过程中查看完整的编译选项
1
xmake -rv
查看当前配置
1
xmake config -v
卸载
xmake
1
xmake update --uninstall
常见问题汇总
交叉编译报错
unknown platform for xcode!
解决方案: 卸载
xmake
重装
本文为作者原创转载时请注明出处 谢谢