Openwrt使用指定版本的toolchain工具链
默认编译 openwrt 时会先编译一套 toolchain. 这个步骤耗时较长. 使用外部 toolchain 可以多个 project 共用一套 toolchain , 而且也不重再编译它了. 省时省力.
make menuconfig
[*] Advanced configuration options (for developers) --->
[*] Use external toolchain --->
│ │ --- Use external toolchain │ │
│ │ [ ] Use host's toolchain │ │
│ │ (mipsel-openwrt-linux-uclibc) Target name │ │
│ │ (mipsel-openwrt-linux-uclibc-) Toolchain prefix │ │
│ │ (/opt/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2) Toolchain root │ │
│ │ (uclibc) Toolchain libc │ │
│ │ (./usr/bin ./bin) Toolchain program path │ │
│ │ (./usr/include ./include) Toolchain include path │ │
│ │ (./usr/lib ./lib) Toolchain library path │ │
编译完在 .config 下可以见到以下变量的定义:
CONFIG_EXTERNAL_TOOLCHAIN=y
# CONFIG_NATIVE_TOOLCHAIN is not set
CONFIG_TARGET_NAME="mipsel-openwrt-linux-uclibc"
CONFIG_TOOLCHAIN_PREFIX="mipsel-openwrt-linux-uclibc-"
CONFIG_TOOLCHAIN_ROOT="/opt/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2"
CONFIG_TOOLCHAIN_LIBC="uclibc"
CONFIG_TOOLCHAIN_BIN_PATH="./usr/bin ./bin"
CONFIG_TOOLCHAIN_INC_PATH="./usr/include ./include"
CONFIG_TOOLCHAIN_LIB_PATH="./usr/lib ./lib"
这些变量在 rules.mk 里起作用.
我使用主 trunk 的 openwrt, 编译 kenrel 时碰到了问题. 在 kernel 的 Makefile 里设置 KBUILD_VERBOSE = 1
看到是交叉编译器没有指定路径. 跟踪到是 rules.mk 里 TARGET_CROSS 只保留了交叉编译器前缀, 没加路径. 改了一下就可以完全编译过了.
diff --git a/rules.mk b/rules.mk
index 0822979..70f3afc 100644
--- a/rules.mk
+++ b/rules.mk
@@ -144,9 +144,9 @@ ifndef DUMPTARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(TARGET_PATH)elseifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
- TARGET_CROSS:=$(call qstrip,$(CONFIG_TOOLCHAIN_PREFIX))TOOLCHAIN_ROOT_DIR:=$(call qstrip,$(CONFIG_TOOLCHAIN_ROOT))TOOLCHAIN_BIN_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_BIN_PATH)))
+ TARGET_CROSS:=$(call qstrip,$(TOOLCHAIN_ROOT_DIR)/bin/$(CONFIG_TOOLCHAIN_PREFIX))TOOLCHAIN_INC_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_INC_PATH)))TOOLCHAIN_LIB_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH)))ifneq ($(TOOLCHAIN_BIN_DIRS),)
Openwrt使用指定版本的toolchain工具链相关推荐
- RISCV toolchain编译工具链搭建
目录 写在前面 1.获取源文件 2.安装相关依赖包 3.修改环境变量 4.编译GCC 写在前面 刚刚接触RISCV编译器,根据网上RISCV toolchain工具链的搭建方法,结合自己体会,写点儿学 ...
- 交叉编译工具链建立与常识
交叉编译工具链的命名规则 arch [-vendor] [-os] [-(gnu)eabi] arch – 体系架构,如ARM,MIPS,对于MIPS可能还分大端模式mips或者小端模式mipsel: ...
- 树莓派学习笔记——交叉编译工具链
0.前言 [1]为什么要使用交叉编译 交叉编译工具较快开发的速度.树莓派中已经安装了gcc工具链,可在树莓派中直接编译源代码生成可执行文件.于此同时,PC机上也可使用gcc工具链生成可执行代码 ...
- 嵌入式 配置arm工具链
嵌入式 配置arm工具链 一.简述 记--在Ubuntu18.04配置4.4.1版本的arm工具链,使用arm工具链编译程序生成的可执行文件可以在开发板运行. 工具链:链接:ht ...
- 交叉编译知识解析(一) —— 交叉编译和交叉工具链
一.交叉编译简介 1.什么是交叉编译 1.1 本地编译 解释什么是交叉编译之前,先要明白一个概念:本地编译 我们之前常见的软件开发,都是属于本地编译:在当前的PC下,x86的CPU下,直接编译出来程序 ...
- 【编译原理】交叉工具链详解
1.嵌入式开发模型-交叉开发 在嵌入式开发过程中有宿主机和目标机的角色之分,宿主机是执行编译.链接嵌入式软件的计算机,目标机是运行嵌入式软件的硬件平台.在宿主机执行编译的流程如下: 而所谓的交叉编译就 ...
- 【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705 参考博客 : [嵌入式开发]嵌入式 开发环境 (远程 ...
- 香橙派嵌入式arm开发板下载交叉编译工具链说明
香橙派开发板以处理器分类,包含全志H2.全志H3.全志H5.全志H6等系列,下文以全志H3芯片的开发板为例,对交叉编译工具链的下载进行说明: 1) orangepi-build第一次运行的时候会自动下 ...
- git指定版本openwrt源码_[OpenWrt Wiki] LEDE源代码
LEDE源代码 LEDE项目发端于r49258版本的OpenWrt,其源代码被保存在一个包含了所有由OpenWrt项目产生的分支和版本的Git树中.在导入源代码时,树被归一化,并对提交者名称和邮件地址 ...
- Openwrt在AR9331交叉编译工具链
目前在用AR9331进行开发,该CPU是MIPS.在网上下载的MIPS的linux交叉编译工具编译出来不能用,在AR9331上运行时,提示"main" 找不到,估计是交叉编译工具链 ...
最新文章
- Linux课程第十三天学习笔记
- 某石油公司100-500人办公网络方案设计
- 3.2.5 端到端的学习
- 【XSS】延长 XSS 生命期
- 最小生成树(Prim、Kruskal)算法,秒懂!
- 存储过程学习笔记(一)
- 字节跳动28岁程序员退休:我只想做一个自由的“废物”
- js控制scss的变量_web前端:js如何操作sass里的变量及calc 使用sass变量
- Linux-0.11内核学习-添加系统调用
- Umbraco中根据ID获取IPublishedContent
- Linux开发板-串口连接成功后界面空白问题
- 有关“重要极限”的经典例题
- Android Studio 部分查找快捷键
- 获取Excel合并单元格的值
- Moto Photon4g 电信3G历程
- GAN原理及简单mnist生成图片
- Windows8.1设置默认输入法为英文
- java中的三种移位运算符
- bison flex
- Centos - top 命令详解
热门文章
- VS2010开发web项目打开后,项目不可用,提示“需要缺少的 Web 组件才能进行加载”
- 作为一名优秀的软件测试工程师,需要具备哪些能力?
- java get请求参数乱码_java web项目get,post请求参数中文乱码解决
- 山东计算机软考题库,软考习题库
- 为什么抖音网红城市都在西部?
- kdj指标主要看哪个值_kdj指标中三者的关系是什么?
- 基于simhash的短文本去重
- cadence的工艺角仿真、蒙特卡洛仿真、PSRR
- Axure RP 9操作界面介绍【教程一】
- springBoot整合ElasticSearch【代码直接复制可用】(超级详细)