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使用的更多相关文章

  1. buildroot使用详解

    为什么要使用buildroot? (文件系统搭建,强烈建议直接用buildroot,官网[http://buildroot.uclibc.org/]上有使用教程非常详细)文件系统通常要包含很多第三方软 ...

  2. buildroot 添加ssh,以及使用stftp 服务

    上一篇水了一下关于buildroot的基本操作,这一章水一下开启SSH服务以及配置sftp服务,以及静态IP的设置. 配置: make menuconfig Target packages  ---& ...

  3. buildroot 制作Linux文件系统初级使用教程

    buildroot 下载地址:https://buildroot.org/download.html 放在Linux文件下解压出来. 使用make menuconfig 进行配置相关的东西. 在使用这 ...

  4. 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 ...

  5. buildroot 使用小记 - 2 源文件目录结构

    官方下载下来的buildroot源码包在解压后,是一个名为buildroot的文件夹,它下面的目录/文件结构如下: Makefile - 顶级makefile,编译总入口 Config.in - 顶级 ...

  6. buildroot ntp 网络时钟同步

    /********************************************************************** * buildroot ntp 网络时钟同步 * 说明: ...

  7. buildroot httpd php

    /******************************************************************** * buildroot httpd php * 说明: * ...

  8. buildroot mysql

    /******************************************************************** * buildroot mysql * 说明: * 这两天要 ...

  9. 使用buildroot编译bind DNS服务器

    用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以直接添加到文件系统里边,如常用的udhcpc,tftp,apache,ligh ...

  10. buildroot linux filesystem 初探

    /****************************************************************************** * buildroot linux fi ...

随机推荐

  1. 《TCP/IP具体解释》读书笔记(19章)-TCP的交互数据流

    在TCP进行传输数据时.能够分为成块数据流和交互数据流两种.假设按字节计算.成块数据与交互数据的比例约为90%和10%,TCP须要同一时候处理这两类数据,且处理的算法不同. 书籍本章中以Rlogin应 ...

  2. ddr sdram self-refresh & auto-refresh

    以下是EDD5116AFTA数据手册的摘录.不过看过了还是不太明白二者的区别. self-refresh:Self-refresh entry [SELF]This command starts se ...

  3. springboot 使用mybatis 通用Mapper,pagehelper

    首先需要maven导入需要的包,这里用的是sqlserver,druid,jtds连接数据库 <dependency> <groupId>com.alibaba</gro ...

  4. Android 勤用RXJava compose操作符消除重复代码

    相信小伙伴在使用RXJava与Retrofit请求网络时,都有遇到过这样的场景,在IO线程请求网络解析数据,接着返回主线程setData.更新View试图,那么也肯定熟悉下面这几句代码: .subsc ...

  5. Asp.Net碎知识

    在aspx页面 获取值: UserModel user=new UserModel();实例化 user.Address=context["txtAddress"]; 如果前台不需 ...

  6. noip 2018 day1 T2 货币系统 完全背包

    Code: #include<cstdio> #include<string> #include<cstring> #include<algorithm> ...

  7. js获取当前时间年份,处理年月日

    js中获得当前时间年份.月份.日期       //获取完整的日期 var date=new Date; var y = date.getFullYear()var m = date.getMonth ...

  8. Reference Counting GC (Part one)

    目录 引用计数法 计数器值的增减 new_obj()和update_ptr()函数 new_obj()生成对象 update_ptr()更新指针ptr,对计数器进行增减 优点 可即可回收垃圾 最大暂停 ...

  9. mysql 5.7 双主+主从配置

    mysql5.7安装及赋权 wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm rpm -ivh mysql57 ...

  10. 紫书 例题 9-1 UVa 1025 ( DAG的动态规划)

    影响到状态的只有时间和在哪个车站(空间),所以可以设f[i][j]是时刻i的时候在第j个车站的最少等待时间 因为题目中的等待时间显然是在0时刻1车站,所以答案为f[0][1],那么就提醒我们从大推到小 ...