xmake 提供了方便灵活的交叉编译支持,大部分情况下,都不需要配置很复杂的toolchains前缀,例如:arm-linux- 什么的

只要这个toolchains目录满足如下结构(大部分的交叉工具链都是这个结构):

/home/toolchains_sdkdir
- bin
- arm-linux-gcc
- arm-linux-ld
- ...
- lib
- libxxx.a
- include
- xxx.h

那么,使用xmake进行交叉编译的时候,只需要进行如下配置和编译:

$ xmake f -p linux --sdk=/home/toolchains_sdkdir
$ xmake

xmake会去自动探测,gcc等编译器的前缀名:arm-linux-,并且编译的时候,也会自动加上 链接库 和 头文件 的搜索选项:

-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib

这些都是xmake自动处理的,不需要手动配置他们。。

但是,也有些例外的情况,比如一些特殊的交叉工具链的,编译器bin目录,并不在 /home/toolchains_sdkdir/bin 这个位置,而是独立到了 /usr/opt/bin , 那怎么办呢,其实也不麻烦,配置的时候,再指定下bin目录的位置就好:

$ xmake f -p linux --sdk=/home/toolchains_sdkdir --toolchains=/usr/opt/bin
$ xmake

如果这个工具链非常奇葩,就是不按规则出牌,路径规则很乱的话,那么xmake也没办法那么智能,只能手动配置全所有参数了:

$ xmake f -p linux --sdk=/home/toolchains_sdkdir --toolchains=/usr/opt/bin --cxflags="-I/usr/xxx/include" --ldflags="-L/usr/zzz/lib"
$ xmake

另外,如果交叉工具链的前缀,例如:arm-linux- xmake 没有检测成功,你也可以通过--cross=参数手动配置上它:

$ xmake f -p linux --cross=arm-linux- --sdk=/home/toolchains_sdkdir ...

个人主页:TBOOX开源工程

原文出处:http://tboox.org/cn/2016/07/22/how-to-compile-on-cross-toolchains/

如何通过xmake进行交叉编译的更多相关文章

  1. xmake从入门到精通9:交叉编译详解

    xmake是一个基于Lua的轻量级现代化c/c 的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验. 除了win, linux, macOS平台,以及an ...

  2. xmake新增智能代码扫描编译模式

    最近给xmake增加了一个新特性,对于一份工程源码,可以不用编写makefile,也不用编写各种make相关的工程描述文件(例如:xmake.lua,makefile.am, cmakelist.tx ...

  3. xmake v2.3.1 发布, 无缝对接其他构建系统

    最近对xmake内部做了不少的重构来改进,并且新增了不少实用的新特性,欢迎来体验. 项目源码 官方文档 一些新特性: 一键编译其他构建系统维护的项目,实现无缝对接,并且支持交叉编译(比如autotoo ...

  4. xmake v2.3.4 发布, 更加完善的工具链支持

    为了让xmake更好得支持交叉编译,这个版本我重构了整个工具链,使得工具链的切换更加的方便快捷,并且现在用户可以很方便地在xmake.lua中扩展自己的工具链. 关于平台的支持上,我们新增了对*BSD ...

  5. xmake v2.1.5版本正式发布,大量新特性更新

    此版本带来了大量新特性更新,具体详见:xmake v2.1.5版本新特性介绍. 更多使用说明,请阅读:文档手册. 项目源码:Github, Gitee. 新特性 #83: 添加 add_csnippe ...

  6. easymake cmake xmake nmake ...

    最简单的Makefile,但是还是大程序少不了makefile工具 #CC=arm-linux-gnueabihf-CC=target:    $(CC)gcc -o algo_main algo_m ...

  7. xmake入门,构建项目原来可以如此简单

    前言 在开发xmake之前,我一直在使用gnumake/makefile来维护个人C/C++项目,一开始还好,然而等项目越来越庞大后,维护起来就非常吃力了,后续也用过一阵子automake系列工具,并 ...

  8. xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...

  9. xmake v2.5.2 发布, 支持自动拉取交叉工具链和依赖包集成

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...

随机推荐

  1. 靶形数独 (dfs+预处理+状态压缩)

    #2591. 「NOIP2009」靶形数独 [题目描述] 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们 ...

  2. 洛谷 - P4008 - 文本编辑器 - 无旋Treap

    https://www.luogu.org/problem/P4008 无旋Treap也可以维护序列. 千万要注意要先判断p节点存在才进行Show操作,不然输出一个'\0'(或者RecBin里面的东西 ...

  3. JavaScript基础7——动态生成表格

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. linux tcp/ip 调优

    sysctl 变量修改方法:sysctl –a 使用 sysctl 命令修改系统变量,和通过编辑 sysctl.conf 文件来修改系统变量两种.但并不是所有的 变量都可以在这个模式下设定. 注:sy ...

  5. selenium 自动化的坑(3)

    一天一坑系列(3) 今天不讲我是怎么定位了吧,今天讲的是关于弹窗的. 基于业务,一键全否之后需要二次确认,会弹出提示框,你会不会认为这是alert弹框?经过仔细查看元素,确认不是弹框,明明是div嘛, ...

  6. JS自定义 Map

    <script>function HashMap(){this.map = {};}HashMap.prototype = { put : function(key, value){ th ...

  7. python之requests模块中的params和data的区别

    params的时候之间接把参数加到url后面,只在get请求时使用: import requests url='https://api.ireaderm.net/account/charge/info ...

  8. 阿里云Kubernetes服务 - Service Broker快速入门指南

    4月底阿里云容器服务上线了基于Kubernetes集群的服务目录功能.阿里云的容器的服务目录遵循Open Service Broker API标准,提供了一系列的服务代理组件,实现了对主流开源服务如M ...

  9. 01 安装IDEA

    https://www.jetbrains.com 1 . 2

  10. vscode中执行gulp task的简便方法

    本文重点是gulp在vscode中执行task任务的方法 如何像webstorm那样简便操作gulp 的task 第1步:安装node.下载地址:https://nodejs.org/zh-cn/ 检 ...