导航:首页 > 源码编译 > buildroot单独编译

buildroot单独编译

发布时间:2022-09-05 15:44:44

‘壹’ buildroot成功后如何编译Qt应用程序

首先得把我们在X86机上调好的程序进行交叉编译,如果在X86上都没有通过的话。。那就不用交叉编译了,(肯定是通不过的),还是到正题吧,设置好环境变量,我们用以用echo 来查看环境变量,echo $TMAKEPATH ,如果返回的不是.../qws/linux-arm-g++ 的字符的话,我们一定得从新设置,
export TMAKEPATH=/tmake 的安装路径/qws/linux-arm-g++ ,同时QTDIR一定得要指定QTE的安装路径,设置过程如下:
export QTDIR=...../qt-2.3.7
以上环境设置好后,我们可以使用tmake来生成Makefile,注意这里我们是用tmake,而不是用qmake(注意),tmake工具在tmake包里面。 具体做法,我们可以在命令行下打:
tmake -o Makefile 工程名.pro
这样我们就新生成了一个Makefile文件,下一步,我们要打开这个文件,做一些小的修改
1: 将LINK=arm-linux-gcc 改为:LINK=arm-linux-g++
2:将LIBS=$(SUBLIBS) -L$(QTDIR)/lib -lm -lqte这句话改为:
LIBS=$(SUBLIBS) -L/opt/gcc-2.3.2-glibc-3.3.2/lib -L$(QTDIR)/lib -lm -lqte
加上你的交叉编译的库。
最后我们可以make了,一个可以在您的板子上可以运行的二进制文件产生了。linux

‘贰’ GCC能否运行于ARM-Linux环境下即GCC能否在ARM平台上运行

简答:

gcc可以运行在arm-linux下。

gcc,可以在arm平台上运行。


详解:

gcc,一般指的是,pc版,x86的平台,

用于嵌入式系统,比如arm的cpu,linux的系统下,是:

本来,一直就可以的,

而且有专门的属于:

交叉编译

简答说就是:

在你的pc端,x86的cpu上,制作出一个交叉编译器

一般叫做arm-linux-gcc

用此arm-linux-gcc去编译你的程序

编译出来的程序,可以运行在嵌入式开发板,比如arm的linux下


极其详尽的解释:

我刚写个教程,你去看就知道了:

交叉编译详解

交叉编译详解
http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html

此教程的主要内容包括:


等你看完了后,建议用crosstool-ng,或者是buildroot去自己编译一个arm-linux的gcc。

‘叁’ 如何编译openwrt,无线默认打开和修改SSID名称

在buildroot里添加一个files文件夹,然后里面的新建etc文件夹,在etc里新建config文件夹,在

<buildroot>/etc/config文件夹里放进你配置好的wireless文件

这是在你的设备处于官方支持的列表的前提下(固件能从官方源码直接编译)。市面上各种图便宜改来改去的你要会自己修改源码才可以

‘肆’ Linux下的QTE下载路径

qt下载地址,里面东西很全:
ftp://ftp.trolltech.com/pub/qt/source

详情参考这个帖子:
[转]Qt Qt/E Qtopia 的关系
http://hi..com/serial_story/blog/item/074bbd26f028561b8b82a1a7.html

在buildroot下编译参考:
buildroot-2009.11下编译QT (Qtopia) 4.5.2 过程记录
http://hi..com/serial_story/blog/item/e98ce2c442c8cdc738db4964.html

单独编译参考:
qt-extended-opensource-src-4.4.3 编译过程记录
http://hi..com/serial_story/blog/item/5d3a833e6a7969f6838b135f.html

‘伍’ 使用buildroot编译arm架构的linux内核,使其支持usb摄像头,并使用qemu虚拟运行

#没有吧ext* 和 VFS编进去吧

cd/usr/src/linux
makemenuconfig
#选择ext4和VFS,在FileSystem里,很好找
make;makemole_install;makeinstall

‘陆’ 如何在TI的AM335x上面使用SGX加速的有OpenGL支持的QT

TI官方的指南请看这里,因为发布时间的关系,这里面已经有很多和最新的软件包不匹配的地方。经过我的努力,我把这个指南中间复杂的部分给做到Buildroot里面去了,基本上实现了“傻瓜式”编译,可通过菜单选择,简单地实现QT下使用SGX硬件加速的OpenGL。

由于本文还涉及到了SGX硬件驱动程序模块的编译,所以看上去还会比较长,但这部分内容没有什么难度。转载请注明来自EE小站,[email protected]

简单的梳理下:
前提是U-boot、内核、文件系统都搞利索了,板子能启动了
TI的Wiki提供了U-boot和内核的说明,地址点这里。
TI的SDK里提供了制作好的文件系统,但是太庞大了,可以下载Buildroot自己做一个。
下载我做的Buildroot补丁,和TI图形SDK
补丁的地址在这里。
这个补丁是我给Buildroot 2013.05做的,与之相配的TI图形SDK在这里,下“Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin”就可以。
应该2013.05之后一段时间Buildroot版本都可以使用这个补丁。
用SDK编译内核模块
可以参照TI的指南,地址点这里。也可以直接看本文。
用Buildroot制作根文件系统
具体过程如下:
假设Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin下载到了/home/c,那么
~ # cd /home/c
/home/c # chmod 744 ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
/home/c # ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
会出来一个交互的安装界面,安装的时候选择“8.x”那项(因为处理器是AM335x),并且把SDK安装到,例如/home/c/core335x_bsp/graphics_sdk_4_10_00_01
安装完后,打开/home/c/core335x_bsp/graphics_sdk_4_10_00_01/Rules.make
假设你的ARM交叉编译器安装在/usr/local/arm/4.7.3-2,前缀是arm-none-linux-gnueabi-,你的内核在/home/c/core335x_bsp/linux-3.2.21,那么就Rules.make中的内容修改成这样
# Set home area (ex /home/user/)
HOME=/home/c/core335x_bsp
# Set Toolchain path (ex /home/user/toolchain/arago-2011.09/armv7a)
CSTOOL_DIR=/usr/local/arm/4.7.3-2
# Set Tool chain prefix (ex arm-arago-linux-gnueabi- )
CSTOOL_PREFIX=arm-none-linux-gnueabi-
# Set kernel installation path ( ex /home/user/linux-04.00.01.13 )
KERNEL_INSTALL_DIR=/home/c/core335x_bsp/linux-3.2.21
# Set Target filesystem path ( ex /home/user/targetfs )
TARGETFS_INSTALL_DIR=$(DESTDIR)
# Set installation folder
GRAPHICS_INSTALL_DIR=$(HOME)/graphics_sdk_4_10_00_01
然后就可以编译了
/home/c # cd core335x_bsp/graphics_sdk_4_10_00_01
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x
假设你的根文件系统在/home/c/nfsroot,那么请确保有/home/c/nfsroot/etc和/home/c/nfsroot/etc/init.d这两个目录,否则安装时候会出错,接下来安装
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x install

这样,SDK库就编译好了,接下来把内核的模块安装到文件系统里,假设内核在/home/c/core335x_bsp/linux-3.2.21,已经配置并且编译好了
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # cd /home/c/core335x_bsp/linux-3.2.21
/home/c/core335x_bsp/linux-3.2.21 # make ARCH=arm moles_install INSTALL_MOD_PATH=/home/c/nfsroot
然后需要把内核驱动模块增加到依赖表中,位置在/home/c/nfsroot/lib/moles/3.2.21/kernel/drivers/moles.dep,在里面增加这两行:
extra/omaplfb.ko:
extra/pvrsrvkm.ko:
接下来就可以用Buildroot制作文件系统了,假设Buildroot的压缩包buildroot-2013.05.tar.bz2下载到了/home/c/core335x_bsp,我做的Buildroot补丁buildroot-am335x.patch下载到了/home/c/core335x_bsp
/home/c/core335x_bsp/linux-3.2.21 # cd /home/c/core335x_bsp
/home/c/core335x_bsp # tar xf buildroot-2013.05.tar.bz2
/home/c/core335x_bsp # cp buildroot-am335x.patch buildroot-2013.05
/home/c/core335x_bsp # cd buildroot-2013.05
/home/c/core335x_bsp/buildroot-2013.05 # patch -p1 < buildroot-am335x.patch
/home/c/core335x_bsp/buildroot-2013.05 # make menuconfig
然后就可以进行配置,QT在Package Selection for the target > Graphic libraries and applications (graphic/text) > Qt,AM335x的OpenGL支持设置选项在Qt下的Graphics drivers,必须先选中Linux Framebuffer,会出现AM335x SGX OpenGL Dirver,选中并在下方输入图形SDK的路径,例如/home/c/core335x_bsp/graphics_sdk_4_10_00_01,其他的选项按需选择即可,接下来就可以编译

/home/c/core335x_bsp/buildroot-2013.05 # make

编译过程会自动下载所需的各种软件包,如果没有选中Qt下的Approve free license,中间会提示选择授权类型,编译完成之后,将映像释放到根文件系统里
/home/c/core335x_bsp/buildroot-2013.05 # tar xf output/image/rootfs.tar -C /home/c/nfsroot

之后,打开/home/c/nfsroot/etc/init.d/powervr.ini,把这里面改成
[default]
WindowSystem=libpvrQWSWSEGL.so
将/home/c/nfsroot下的文件系统挂载到目标板上,启动以后,输入用户名root登陆,运行
# /etc/init.d/335x-demo
# mv /etc/init.d/rc.pvr /etc/init.d/S99powervr
至此,这个文件系统就支持QT使用SGX硬件加速的OpenGL了。
如果你在配置QT的时候选择了Compile and install demos and examples (with code),那么你可以找到/home/c/core335x_bsp/buildroot-2013.05/output/build/qt-4.8.4/examples/opengl/hellogl_es2/hellogl_es2这个文件,把它拷贝到根文件系统里,运行
# hellogl_es2 -qws -display powervr
可以检验是否可以正常工作。
需要说明一下,为了让QT支持OpenGL,AM335x图形处理器的厂家(不是TI,是Imagination Technologies)提供的插件程序让QT的动态链接库禁止鼠标光标显示。现象就是,虽然看不到鼠标,但是还可以用。这个目前还没有解决方法,因为貌似图形处理器是直接操作Frame Buffer的,有鼠标估计程序不好写,性能也会下降吧。如果你要用鼠标的话,需要自己写个显示鼠标光标的程序。
转载,仅供参考,祝你愉快,满意请采纳。

阅读全文

与buildroot单独编译相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:769
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:844
安卓怎么下载60秒生存 浏览:803
外向式文件夹 浏览:240
dospdf 浏览:431
怎么修改腾讯云服务器ip 浏览:392
pdftoeps 浏览:496
为什么鸿蒙那么像安卓 浏览:736
安卓手机怎么拍自媒体视频 浏览:186
单片机各个中断的初始化 浏览:724
python怎么集合元素 浏览:481
python逐条解读 浏览:833
基于单片机的湿度控制 浏览:499
ios如何使用安卓的帐号 浏览:883
程序员公园采访 浏览:812
程序员实战教程要多长时间 浏览:979
企业数据加密技巧 浏览:135
租云服务器开发 浏览:814
程序员告白妈妈不同意 浏览:337
攻城掠地怎么查看服务器 浏览:601