uclinux编译不完全指南
First Post:
Last Update:
Last Update:
以下编译环境在Ubuntu 16.04 Lts ia86
请严格按照教程 以免出现意想不到的意外情况
推荐版本ubuntu 16.04目前软件源容易找到,并且建议使用ssh连接到虚拟机.较老版本的ubuntu对vmtools的支持很差,经常出现无法拖拽,传输文件的情况.
本篇文章拉取Git:stm32f429-linux-builder,实际上也是readme文档的一次实践.
首先下载arm-uclinuxeabi-gnu中的文件,搭建arm/uclinux 工具链
推荐使用ssh连接到虚拟机传输文件,推荐软件mobaxtem.
放置的目录为系统根目录/ 我并不确定放置其他目录的工作是否正常.
不论什么方法,把文件放到根目录就行了.
1 | |
- 代码解释:解压压缩包并且添加PATH.
- 贴出的代码为Git中写出的方法,export方法并不是一个很好的方法,关闭终端后即失效
推荐方法:修改当前用户环境变量(影响所有用户)
1 | |
在文件末尾添加:
1 | |
刷新变量:
1 | |
测试变量:
1 | |
成功出现版本即可.
安装genromfs:
1 | |
- 工具链安装完成
拉取git:
1 | |
cd进目录:
1 | |
执行make:
1 | |
请注意,由于perl版本的问题,可能会出现以下的报错
Can’t use ‘defined(@array)’ (Maybe you should just omit the defined()?) at /stm32f429-linux-builder/uclinux/kernel/timeconst.pl line 373.
解决方案如下
- 打开uclinux/kernel/timeconst.pl文件.
- 删除if (!defined(@val))中的defined.
保存后即可正常编译.