使用xmake交叉编译生成各个平台可执行程序

xmake介绍

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua维护项目构建, 相当于是cmake的增强版, 其优点如下:

  • 简单易用
  • 能够像 Make/Ninja 那样可以直接编译项目
  • 可以像CMake/Meson 那样生成工程文件
  • 内置的包管理系统来帮助用户解决 C/C++依赖库的集成使用问题
  • 可以实现跟C/C++进行混合编译
  • 编译速度也是非常的快,可以跟Ninja持平
  • 简化了交叉编译

官方文档

GITHUB

环境准备

  • 编译宿主平台: MAC

  • 交叉编译目标平台: Linux, Windows, IOS, Android ….

  1. 下载xmake

    1
    bash <(curl -fsSL https://xmake.io/shget.text -k)
  2. 测试c代码准备 文件取名为main

    1
    2
    3
    4
    5
    6
    #include <stdio.h>
    int main(int argc, char** argv){
    printf("Hello World!\n");

    return 0;
    }
  1. 在源码目录下新建xmake.lua文件

    并加入以下配置

    1
    2
    3
    4
    5
    6
    7
    8
    add_rules("mode.debug", "mode.release")

    -- 编译项目名称
    target("main")
    -- 指定编译形式 可执行文件 还是静态库or动态库
    set_kind("binary")
    -- 指定需要参与编译的源码文件
    add_files("src/main/c/main.c")

编译前的环境准备好了,那接下来 咱们挨个来实现目标平台的可执行文件生成

生成phone平台程序

  1. 下载xcode

    直接应用市场下载

  2. xmake指定编译目标平台

    1
    xmake f -p iphoneos
  3. 编译程序

    1
    xmake build main

    编译成功后 可以在build目录中找到对应的可执行文件

    image-20220929172751417

生成Mac平台的程序

  1. xmake指定编译目标平台

    1
    xmake f -p macosx
  2. 编译程序

    1
    xmake build main

    编译成功后 可以在build目录中找到对应的可执行文件

    image-20220929173058827

  3. 执行程序

    由于编译宿主平台刚好是Mac 所以我们可以直接执行程序

    1
    xmake run main

    image-20220929173203142

生成Windows平台程序

  1. 下载mingw-w64

    1
    brew install mingw-w64
  2. xmake指定编译目标平台

    1
    xmake f -p mingw

    或者使用图形化界面配置

    1
    xmake f --menu

    img

    配置完后 我们查看xmake的配置显示当前平台为mingw:

    image-20220930102409815

  3. 编译程序

    1
    xmake build main

    编译成功后 我们可以在build目录下找到生成的exe可执行文件:image-20220930101946291

  4. 关于mingw内部编译器

    我们打印编译信息会发现mingw内部采用的是gcc编译工具

    image-20220930102723811

生成Android平台程序

  1. 下载NDK

    点击进入下载页面

  2. xmake指定编译目标平台

    1
    xmake f -p android --ndk=ndk路径

    此时我们查看xmake配置显示当前编译平台为android:

    image-20220930101224522

  3. 编译程序

    1
    xmake build main

    编译成功后 可以在编译目录查看到生成的可执行文件

    image-20220930101319392

xmake常用指令

  1. 重置配置

    1
    xmake f -c
  2. 指定交叉编译工具

    1
    2
    3
    xmake f --toolchain=clang
    或者
    xmake f --toolchain=gcc
  3. 查看当前工程信息和xmake信息

    1
    xmake show
  4. 编译过程中查看完整的编译选项

    1
    xmake -rv
  5. 查看当前配置

    1
    xmake config -v

    image-20220929181646806

  6. 卸载xmake

    1
    xmake update --uninstall

常见问题汇总

  1. 交叉编译报错 unknown platform for xcode!

    解决方案: 卸载xmake重装

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%