如何通过xmake进行交叉编译

简介: xmake 提供了方便灵活的交叉编译支持,大部分情况下,都不需要配置很复杂的toolchains前缀,例如:arm-linux- 什么的只要这个toolchains目录满足如下结构(大部分的交叉工具链都是这个结构):...

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/

目录
相关文章
|
7月前
|
存储 安全 算法
阿里云平台WoSign SSL证书,轻量化助力网站安全合规
阿里云WoSign SSL品牌证书可通过SSL/TLS协议的加密认证机制,建立安全的网络连接并校验通信方的真实身份,从而实现网络传输的保密性、完整性,确保通信双方身份可信。部署证书文件到服务器端,帮助等保二级及以上信息系统以及关键信息基础设施信息系统,履行等保安全通信设计技术要求,轻量化助力网站数据传输安全合规建设。
260 3
|
存储 缓存 数据管理
深入理解 Linux 文件系统的层次结构
【4月更文挑战第30天】 本文旨在探讨和解析 Linux 操作系统中文件系统的结构与原理。不同于通常的摘要,我们将直接深入到文件系统的核心概念,包括其目录结构、关键组件以及它们如何相互作用以支持 Linux 操作系统的功能。通过剖析文件系统的层次性设计,我们能够更好地理解其在数据管理、用户权限控制和系统安全性方面的重要性。
|
9月前
|
SQL 关系型数据库 MySQL
Python中Pymysql库的常见用法和代码示例
`pymysql` 是一个用于连接 MySQL 数据库的 Python 库,支持 SQL 查询的执行和结果处理。通过 `pip install pymysql` 安装后,可使用 `connect()` 方法建立连接,`cursor()` 创建游标执行查询,包括数据的增删改查,并通过 `commit()` 和 `rollback()` 管理事务,最后需关闭游标和连接以释放资源。
397 0
|
10月前
|
编解码 Android开发 开发者
如何在轻量级RTSP服务中玩转H.264扩展SEI,实现自定义数据的发送与接收?
【9月更文挑战第4天】本文详细介绍了如何在轻量级RTSP服务中实现H.264标准的扩展SEI功能,包括环境准备、依赖引入、RTSP服务创建、自定义SEI数据发送与接收等步骤,并提供了具体代码示例,帮助开发者更好地利用SEI在视频流中嵌入元数据。
251 3
|
缓存 编译器 测试技术
简化 CMake 多平台兼容性处理:高效开发的秘诀
简化 CMake 多平台兼容性处理:高效开发的秘诀
357 0
Error: Cannot find module ‘node:url‘【已解决】
Error: Cannot find module ‘node:url‘【已解决】
636 3
Linux ALSA驱动之二:声卡的创建流程 下
Linux ALSA驱动之二:声卡的创建流程 下
Linux ALSA驱动之二:声卡的创建流程 下
|
开发工具 git
完美解决git 执行git push origin master指令 报错command not found
完美解决git 执行git push origin master指令 报错command not found
441 0
|
数据可视化 数据库 C++
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
2568 0
|
Ubuntu Linux Windows
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
514 0
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问