buildroot使用
buildroot是一套自动化构建工具,比yocto简单。
项目地址:http://www.buildroot.org/
培训资料地址:http://free-electrons.com/
附带linux源码在线阅读地址:http://lxr.free-electrons.com/
配置编译完buildroot生成根文件系统后,根文件系统可以在开发板上运行。
可以只用builroot生成根文件系统,只要在配置时所选的linux版本与目标板所用一致即可。
而相应的在宿主机则生成了针对目标板的开发环境,也可以生成SDK供其他开发人员使用。
有时候还需要进行一些配置来使用额外的函数接口。
1、如:要使用三星硬件编码模块,在4412提供的linux3.0版本里,不但要求开发板上的系统要在开机后加载MFC固件,在使用MFC提供的API时也需要MFC的头文件和源文件才能使用API,这些文件不在板上提供的linux内核原文件里,而在该内核对应的安卓代码中,可以用linux中的find指令在其中进行查找,注意选择正确的源文件。要在本工程中使用MFC模块,有两种方法一种是将mfc模块头文件,源文件均放置在本工程文件夹中,在工程中进行包含。另一种是将头文件放在编译器默认的查找路径上,比如如果是本地开发,那么本地编译器会到/usr/include目录下查找,而如果是交叉编译,则交叉编译器也需要一个根文件系统,在根文件系统的/usr/include目录下去查找头文件,用buildroot创建的交叉编译工具链的根文件系统目录就是buildroot-2014.05/output/host/usr/arm-gainuo-linux-gnueabihf/sysroot/,当然还可以在编译时给GCC添加额外参数I,指定头文件查找路径。而如果因为商业性问题没有源文件只提供了链接库文件,那么同头文件一样,可以将链接库文件放置连接器默认的查找路径上,或者给GCC添加L参数指定库路径。而一般板商提供的编译器是找不到根文件系统路径的(我是不知道怎么弄的,如果交叉编译工具链和本地工具链共用主机的根文件系统路径,那么是很有可能因为版本问题导致头文件不兼容问题的,比较麻烦)。
比较而言还是把特定工程的头文件和工程放在一起比较好。
buildroot把包括配置时选择的各种包需要的库都打包进生成的根文件系统里了,但这里面只有动态库.so。而静态库.a只存在于主机为开发而产生的usr/lib里面,这样在编译基于特定包函数的程序时,程序将静态编译,在目标机不需要动态库。
2、至于在配置时已选的包他们的头文件都已经放进交叉编译器默认的路径里面呢。
buildroot使用的更多相关文章
- buildroot使用详解
为什么要使用buildroot? (文件系统搭建,强烈建议直接用buildroot,官网[http://buildroot.uclibc.org/]上有使用教程非常详细)文件系统通常要包含很多第三方软 ...
- buildroot 添加ssh,以及使用stftp 服务
上一篇水了一下关于buildroot的基本操作,这一章水一下开启SSH服务以及配置sftp服务,以及静态IP的设置. 配置: make menuconfig Target packages ---& ...
- buildroot 制作Linux文件系统初级使用教程
buildroot 下载地址:https://buildroot.org/download.html 放在Linux文件下解压出来. 使用make menuconfig 进行配置相关的东西. 在使用这 ...
- iOS Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.30.14/UITableView.m:7962
Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:], /BuildRoot/Library/Cac ...
- buildroot 使用小记 - 2 源文件目录结构
官方下载下来的buildroot源码包在解压后,是一个名为buildroot的文件夹,它下面的目录/文件结构如下: Makefile - 顶级makefile,编译总入口 Config.in - 顶级 ...
- buildroot ntp 网络时钟同步
/********************************************************************** * buildroot ntp 网络时钟同步 * 说明: ...
- buildroot httpd php
/******************************************************************** * buildroot httpd php * 说明: * ...
- buildroot mysql
/******************************************************************** * buildroot mysql * 说明: * 这两天要 ...
- 使用buildroot编译bind DNS服务器
用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以直接添加到文件系统里边,如常用的udhcpc,tftp,apache,ligh ...
- buildroot linux filesystem 初探
/****************************************************************************** * buildroot linux fi ...
随机推荐
- 22.IntelliJ IDEA 切换 project
转自:https://blog.csdn.net/qwdafedv/article/details/73838628?utm_source=blogxgwz0 1.file->open 2.选择 ...
- django 笔记2
默默坚持 :路由系统 URL :视图 request.GET request.POST request.FILES #checkbox等多选的内容 request.POST.getlist() #上传 ...
- 如何解决winxp访问win10共享打印机提示凭据不足
Winxp访问win10共享的打印机,提示凭据不足时,如何解决,本篇经验将和大家分享下解决的办法,希望对大家的工作有所帮助! 方法/步骤 在win10的电脑上对着始按钮点鼠标右键,点击运行,或 ...
- 浅谈unicode编码和utf-8编码的关系
字符串编码在Python里边是经常会遇到的问题,特别是写文件以及网络传输的过程中,当调用某些函数的时候经常会遇到一些字符串编码提示错误,所以有必要弄清楚这些编码到底在搞什么鬼. 我们都知道计算机只能处 ...
- 《三》build 快速创建模块
一.将build.php文件复制一份放在 application目录下 二.修改build.php文件代码 <?php return [ 'home' => [ //需要生成的目录 '__ ...
- JS的解析与执行过程—全局预处理阶段之全局词法环境对象
问题:有如下代码 var a = 1; function pop() { alert(a); var a = 5; } pop();//执行结果,弹出undefined 这段代码的执行结果为undef ...
- 【Docker构建私有仓库】
Docker默认不允许非HTTPS方式推送镜像,我们可以通过Docker的配置选项来取消此限制: [root@fedora ~]# cat /etc/docker/daemon.json { &quo ...
- Swift学习笔记(13)--属性 (Properties)
普通属性用var和let即可,本文不做详述 1.延迟存储属性 延迟存储属性是指当第一次被调用的时候才会计算其初始值的属性.在属性声明前使用@lazy来标示一个延迟存储属性. class DataImp ...
- Vue2.0八——知识点整理
1.active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件. 2.怎么定义vue-router的动态路由?怎么获取传过来的动态参数? 答 ...
- HRBUST 1819 石子合并问题--圆形版
石子合并问题--圆形版 Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HRBUST. Original ...