Linux ls信息给qt gui,第九章 LINUX GUI实验

(1)命令安装

apt-get install libqt3-mt

apt-get install qt3-designer

(1)源码安装

(1)建立项目工作目录

mkdir  /root/qt3test

(2)使用designer工具,建立项目的界面布局

cd /root/qt3test

designer

先新建项目工程(名字与工作目录名一样):

建立主界面窗体:

使用标签“TextLabel”在主界面窗体上标签“welcome !”:

完成项目后可以预览演示:

保存:

新建包含主函数的文件:

保存退出:

(3)使用uic工具把项目工程文件与“.ui”文件转换为方便我们编程开发的“.h”和“.cpp”文件:

uic qt3test.ui -o qt3test.h

uic qt3test.ui -i qt3test.h -o qt3test.cpp

ls

(4)先把“.ui”和“.pro”文件剪切移到到新建的“.uipro”目录备份,再利用qmake工具生成新的工程文件和Makefile文件:

mkdir .uipro

mv qt3test.ui qt3test.pro .uipro/

qmake -project

qmake

ls

(5)真正的QT编程开发(需要C++编程知识):

打开“qt3test.h”,“qt3test.cpp”,进行功能的扩充。或另外添加其他的“.h”和“.cpp”文件,此时需要使用qmake工具重新生成新的工程文件和Makefile文件。

(6)编译:

如果遇到提示缺少“g++”,命令安装更新apt-get install g++。

make

(7)运行测试:

./qt3test

(1)建立交叉编译环境(详见3-3)

(2)交叉编译qt-embedded-free

把qt-embedded-free-3.3.8.tar.bz2放于目录/root下

a、解压qt-embedded-free-3.3.8.tar.bz2,重命名“qt-embedded-free-3.3.8”为“qte”。

# tar xf qt-embedded-free-3.3.8.tar.bz2

# mv qt-embedded-free-3.3.8  qte

b、拷贝编译需要的本机已经安装的uic、moc

# cp /usr/bin/uic   qte/bin

# cp /usr/bin/moc  qte/bin

c、设置qte的环境变量

# cd qte

# pwd     比如显示“/root/test-qt/qte”

# export QTEDIR = /root/test-qt/qte

#export LD_LIBRARY_PATH

=$QTEDIR/lib:$LD_LIBRARY_PATH

# export PATH = $QTEDIR/bin:$PATH

# export QTDIR = $QTEDIR:$QTDIR

d、配置qmake

在mkspecs/qws目录下新建Cross目录

#cd mkspecs/qws/

#mkdirgcc-3.4.6

#cdgcc-3.4.6

#cp ../linux-mips-g++/qmake.conf ./

#cp ../linux-mips-g++/qplatformdefs.h ./

修改qmake.conf,将编译器指定为Cross

QMAKE_CC = mipsel-linux-gccQMAKE_CXX = mipsel-linux-g++QMAKE_LINK = mipsel-linux-g++QMAKE_LINK_SHLIB = mipsel-linux-g++

e、配置、编译

#./configure  -qt-gif  -xplatform qws/gcc-3.4.6-thread  -embedded mips  -qvfb  -no-cups  -depths 4,8,16,24,32

# make

(3)交叉编译qt应用程序“qt3test”

在qt3test目录下创建交叉编译配置环境脚本:

# vi env.sh

内容为:

export QTDIR=/root/qte

export QMAKEDIR=$QTDIR/qmake

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export PATH=$QMAKEDIR/bin:$QTDIR/bin:/opt/gcc-3.4.6/bin:$PATH

export QMAKESPEC=qws/linux-mips-g++

# source env.sh

# qmake -project

# qmake

# make

即得到需要移植的可执行程序“qt3test”。

(1)把qt3test所需的动态链接库与字体库拷贝到文件系统根目录下

#mkdir /root/rootfs/qte

#cp /root/qte/lib /root/rootfs/qte

(2)把交叉编译得到的可执行程序‘qt3test’拷贝于文件系统根目录

#cp /root/qt3test/qt3test /root/rootfs

(3)编写启动脚本

#cd /root/rootfs

#vi qt3test.sh

内容为:

export QTDIR=/qte

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

(4)退出,制作文件系统镜像

$mkfs.cramfsrootfsrootfs-qt3test.img

(5)开发板上电,烧写到开发板

PMON> devcp  tftp://192.168.0.244/rootfs-qt3test.img  /dev/mtd1

(6)进到文件系统,运行程序

#sh qt3test.sh

# ./music-player -qws -fn unifont

至此移植完成。

2实验二SDL和AGAR

简介:

SDL为Simple DirectMedia Layer的简称,是一个自由的跨平台的多媒体开发包,适用领域如下:

1、游戏

2、游戏SDK

3、模拟器

4、演示软件

5、多媒体应用软件

SDL常用功能有:事件,视频,音频,CD音频,定时器,字节序无关。

1、下载和安装

(1)下载SDL软件

打开地址:,这是基于linux的源代码,本安装包里面已经有一份。

(2)安装包目录

为了方便,在“SDL及agar安装包.tar”内已备有以下安装包

libtool-1.3.5.tar.gz

SDL-1.2.13.tar.gz

SDL_image-1.2.10.tar.tar

SDL_ttf-2.0.9.tar.gz

freetype-2.4.3.tar.bz2

agar-1.3.4.tar.gz

libpng-1.4.2.tar.gz

jpegsrc.v7.tar.gz

expat-2.0.1.tar.gz

(3)安装SDL软件

step1 安装libtool-1.3.5.tar.gz

#tar zxvf libtool-1.3.5.tar.gz

#cd SDL-1.2.13

#./configure

#make

#make install

step2安装libiconv-1.13.1.tar.gz

# tar zxvf libiconv-1.13.1.tar.gz

# cd libiconv-1.13.1

# ./configure

# make

# make install

step3安装SDL-1.2.13.tar.gz

# tar zxvf SDL-1.2.13.tar.gz

# cd SDL-1.2.13

# ./configure

# make install

step4安装SDL_image-1.2.10.tar.tar

SDL_image作用为图像显示

# tar xvf SDL_image-1.2.10.tar.tar

# cd SDL_image-1.2.10

# ./configure

# make

# make install

step5安装freetype-2.4.3.tar.bz2

freetype作用为字体。

#tar zxvf freetype-2.4.3.tar.bz2

#cd freetype-2.4.3

#./configure

#make

#make install

step6 安装SDL_ttf-2.0.9.tar.gz

SDL_ttf作用为文字显示。

# tar zxvf SDL_ttf-2.0.9.tar.gz

# cd SDL_ttf-2.0.9

# ./configure

# make

这里可能会报错,说找不到

/usr/include/multiarch-mipsel-linux/freetype2/freetype/config/ftconfig.h

#mv  /usr/include/multiarch-mips64el-linux  multiarch-mipsel-linux

这样就OK了

#make

# make install

setp7安装jpegsrc.v7.tar.gz

jpegsrc.v7作用为支持显示jpeg格式图片

#tar zxvf  jpegsrc.v7.tar.gz

#cd jpeg  jpeg-7

#./configure

#make

#make install

step8安装zlib-1.2.5

#cd zlib-1.2.5

#./configure

#make

#make install

setp9安装libpng-1.4.2.tar.gz

#tar zxvf libpng-1.4.2.tar.gz

#cd libpng-1.4.2

#./configure

#make

#make install

step10安装expat-2.0.1.tar.gz

#tar zxvf expat-2.0.1.tar.gz

#cd expat-2.0.1

#./configure

#make

#make install

step11安装agar-1.3.4.tar.gz(若只要使用SDL,这一步则省去)

# tar zxvf agar-1.3.4.tar.gz

# cd agar-1.3.4

# make clean

# ./configure

# cp /usr/bin/libtool mk/libtool

# make

# make install

2、样例体验

SDL:

#cdSDL-1.2.13/test

#make

AGAR:

#cdagar-1.3.4/demo

#make

1、设置环境变量

建立交叉编译环境(详见3-3)

#export LDFLAGS=-L/opt/mipsel/lib

#export CFLAGS=-I/opt/mipsel/include

2、编译

(1)编译jpeg-7

软件名称

Libjpeg

功能描述

Libjpeg是一个用c语言编写支持jpeg解码、编码的库

下载地址

软件版本

jpegsrc.v7.tar.gz

依赖关系

默认

前置条件

源文件位置:$(work_dir)/jpeg-7

#./configure–-host=mipsel-linux–target=mipsel-linux–-prefix=/opt/mipsel

#makeCC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++

#make install

(2)编译freetype-2.4.3

软件名称

freetype-2.4.3

功能描述

Freetype是一个用c语言实现的字体栅格化引擎制作的一个库

下载地址

软件版本

freetype-2.4.3.tar.bz2

依赖关系

默认

前置条件

源文件位置:$(work_dir)/freetype-2.4.3

#./configure --prefix=/opt/mipsel--host=mipsel-linux--target=mipsel-linux

#make &&make install

到/opt/下查看是否安装成功。生成了所需的头文件和库。

(3)编译libiconv

软件名称

libiconv

功能描述

libiconv库为需要做转换的程序,实现了一个字符编码到另一个字符编码的转换

下载地址

软件版本

libiconv-1.13.1.tar.gz

依赖关系

默认

前置条件

源文件位置:$(work_dir)/libiconv-1.13.1

#./configure–-host=mipsel-linux–-target=mipsel-linux–-prefix=/opt/mipsel

#makeCC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++

# make install

(4)编译libpng-1.4.2

软件名称

libpng

功能描述

libpng是多种应用程序所使用的解析PNG图形格式的函数库

下载地址

软件版本

libpng-1.4.2.tar.gz

依赖关系

默认

前置条件

源文件位置:$(work_dir)/libpng-1.4.2

# ./configure–-host=mipsel-linux–target=mipsel-linux–-prefix=/opt/mipsel

#makeCC=mipsel-linux-gcc

# make install

(5)编译SDL-1.2.13

软件名称

SDL-1.2.13

功能描述

SDL是一个自由的跨平台的多媒体开发包,适用视频音频和其他应用的软件

下载地址

软件版本

SDL-1.2.13.tar.gz

依赖关系

默认

前置条件

源文件位置:$(work_dir)/SDL-1.2.13.tar.gz

# ./configure -–host=mipsel-linux -–prefix=/opt/mipsel–-disable-static–-disable-nasm–-disable-video-x11–-disable-x11-shared–-disable-dga–-disable-video-dga–-disable-video-x11-dgamouse–-disable-video-x11-vm–-disable-video-x11-xv -–disable-video-x11-xinerama -–disable-video-x11-xme --disable-video-x11-xrander--disable-video-x11-dpms --disable-video-svga --enable-input-tslib

--disable-esd --disable-esdtest --disable-esd-shared --without-x

#make

# make install

SDL/test 范例编译

# ./configure --host=mipsel-linux --without-x;

#make

(6)编译SDL_image-1.2.10

软件名称

SDL_image-1.2.10

功能描述

SDL_image是用于处理图形文件的开源函数库

下载地址

http://www.libsdl.org/projects/SDL_image/

软件版本

SDL_image-1.2.10.tar.tar

依赖关系

默认

前置条件

源文件位置:$(work_dir)/SDL_image-1.2.10

# ./configure–-host=mipsel-linux–target=mipsel-linux–-prefix=/opt/mipsel

#makeCC=mipsel-linux-gcc

修改项:

->CFLAGS= -I/opt/include/SDL

–LSDL–lpthread

->LIBS=-Wl,rpath,/opt/lib–L/opt/lib–LSDL -lpthread

LIBPNG选项 添加成如下参数:

默认为空

SDL_CFLAGS、SDL_LIBS选项也修改成如下

#makeCC=mipsel-linux-gcc

# make install

(7)编译SDL_ttf

软件名称

SDL_ttf-2.0.9

功能描述

SDL_ttf是让应用程序能渲染汉字的扩展库

下载地址

软件版本

SDL_ttf-2.0.9.tar.gz

依赖关系

默认

前置条件

源文件位置:$(work_dir)/SDL_ttf-2.0.9

# ./configure–-host=mipsel-linux–target=mipsel-linux–-prefix=/opt/mipsel

修改Makefile文件

>CFLAGS = -g -O2 -I/opt/include/freetype2 -I/opt/include -I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include

>FREETYPE_CONFIG = /opt/bin/freetype-config

>LIBS = -L/opt/lib -lfreetype -L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread

local/lib -lfreetype -L/usr/local/lib -Wl,-rpath,/opt/lib -lSDL\ -lpthread

>SDL_CFLAGS = -I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT

>SDL_CONFIG = /opt/bin/sdl-config

>SDL_LIBS = -L/opt/lib -Wl,-rpath,/opt/lib -lSDL,-lpthread

# make CC=mipsel-linux-gccAR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++

#make install

若出现以下错误

则修改149行参数为下图所示

重新配置configure后

# makeCC=mipsel-linux-gccAR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++

# make install

(8)编译agar1.3.4

软件名称

agar-1.3.4

功能描述

agar是基于C和C++并且依赖与SDL库的开源图形应用软件

下载地址

软件版本

agar-1.3.4.tar.gz

依赖关系

默认

前置条件

源文件位置:$(work_dir)/agar-1.3.4

# ./configure  --prefix=/opt/mipsel  --without-gl --with-docs

(agar没有host选项基于)

>SDL_CFLAGS =-I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT

>SDL_LIBS = -L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread

>FREETYPE_CFLAGS= -I/opt/include/freetype2 -I/opt/include

>FREETYPE_LIBS= -L/opt/lib -lfreetype

>JPEG_CFLAGS= -I/opt/include

>JPEG_LIBS= -L/opt/lib -ljpeg

# make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++

编译正确 通过

# make install

编译agar/demos

此处以loader为范例

# ./configure --without-gl --with-docs

此时需要对makefile.config文件进行修改

>SDL_CFLAGS=-I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT

>SDL_LIBS=-L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread

>FREETYPE_CFLAGS=-I/opt/include/freetype2 -I/opt/include

>FREETYPE_LIBS=-L/opt/lib -lfreetype

>AGAR_CFLAGS=-I/opt/include/agar -I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include/freetype2 -I/opt/include

>AGAR_LIBS=-L/opt/lib -lag_gui -lag_core -L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread -L/opt/lib -lfreetype -lm -lpthread

# make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++

1、为了方便程序的编译测试,我们将非X11库做个备份:

#cd /usr/

#mkdir no_X11

#cp -rf local/include no_x11

#cp -rf local/lib no_x11

这样在no_X11下的库就是非X11库。

2、为了方便的使用这两种库,我们在Makefile.config里指定路径:

IPR_LIB_DIR=/usr/no_X11/lib

IPR_INC_DIR=/usr/no_X11/include

这样得到的可执行程序就是非X11的。

3、移植SDL库

将no_X11里面的库放进文件系统lib目录下

#cd /usr/no_X11

#cp libSDL* /home/ipr/ramdisk/lib

#cp libfreetype* /home/ipr/ramdisk/lib

可以看到安装完agar没有看到lib目录下有agar库,因为它是基于SDL的。

在 SDL-1.2.13/test或agar-1.3.4/demos/目录下,有许多例子。可以将例子复制到根文件系统

根目录下,制作文件系统镜像,烧写文件系统镜像于开发板上。也可以把交叉编译得到的

例子使用网络传输于开发板上。

至此移植完成。

3实验三 DirectFB

(1)

DirectFB-1.3.0.tar.gzDirectFB-examples-1.2.0.tar.gz

(2)编译安装:

DirectFB-1.3.0:

$sudotarzxvfDirectFB-1.3.0.tar.gz$cdDirectFB-1.3.0

$./configure

提示:如果在./configure这步出现下面的提示:PNG support is missing - many applications won't work correctly!JPEG support is missing - many applications won't work correctly!FreeType2 support is missing - many applications won't work correctly!

参考解决方法:

查找关于png方面的包:  $apt-cache search libpng

安装查找的相关包:      $apt-get install libpng12-dev

$apt-cache search libjpeg

$apt-get install libjpeg62-dev

$apt-cache search libfreetype

$apt-get install libfreetype6-dev

$sudo make

$sudo make install

DirectFB-examples-1.2.0:

$sudotarzxvfDirectFB-examples-1.2.0.tar.gz

提示1:找到directfb.pc的路径,让其能找到对应的directfb。

更新数据库

$updatedb

查找directfb.pc$locate directfb.pc

例如得到信息:

/huang/DirectFB-1.3.0/directfb.pc

/huang/DirectFB-1.3.0/directfb.pc.in

/usr/local/lib/pkgconfig/directfb.pc

提示2:接着设置环境,将上一步得到的pkgconfig库目录加入环境之中:$export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig(这样只能在当前终端可以运行,关机后还得自已运行些命令,才能运行dfb程序,如要永久性加入可这样:如你用的是root用户,可以$vi /root/.profile中加入:PKG_CONFIG_PATH=/usr/local/lib/pkgconfig )

$cdDirectFB-examples-1.2.0

$./configure

$.sudo make

$sudo make install

(3)运行样例

指定directfb的库目录:$sudovi /etc/ld.so.conf

在最后一行加入:/usr/local/lib,保存退出。

更新:

$ldconfig创建配置文件:

$sudo vi /usr/local/etc/directfbrc

内容为:

system = x11

wm = default

mode = 640x480

scaled = 640x480

depth = 32

pixelformat = RGB32

mouse-protocol = IMPS/2

bg-color = 00FFFF

目录/usr/local/bin或DirectFB-examples-1.2.0/src下测试样例

$cdDirectFB-examples-1.2.0/src

$sudo df_andi

准备:

zlib-1.2.5.tar.bz2

freetype‐2.3.5.tar.bz2

libpng-1.2.40.tar.bz2

jpegsrc.v6b.tar.gz

DirectFB-1.3.0.tar.gz

DirectFB-examples-1.2.0.tar.gz

交叉编译DirectFB:

(1)配置环境:

建立交叉编译环境(详见3-3);

$mkdir /usr/directfb

$export PREFIX=/usr/directfb

$export LDFLAGS=-L$PREFIX/lib

$export CFLAGS="-g -I$PREFIX/include"

$exportCPPFLAGS="-g -I$PREFIX/include"

$export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

(2)zlib-1.2.5

$tar jxvf zlib-1.2.5.tar.bz2

$cd zlib-1.2.5

$./configure  --prefix=$PREFIX  --shared

——不能加“--host=mipsel-linux”,否则出错。

$vi Makefile——把Makfile里的gcc,ar,ranlib全都替换成mipsel-linux-gcc,mipsel-linux-ar,mipsel-linux-ranlib。

$make

$make install

(3)freetype‐2.3.5

$tar jxvf freetype‐2.3.5.tar.bz2

$cd freetype‐2.3.5

$./configure  --host=mipsel-linux  --prefix=$PREFIX

$make

$make install

(4)libpng-1.2.40

$tar jxvf libpng-1.2.40.tar.bz2

$cd libpng-1.2.40

$./configure  --host=mipsel-linux  --prefix=$PREFIX--with-gnu-ld

$make

$make install

(5)jpegsrc.v6b

$tar zxvf jpegsrc.v6b.tar.gz

$cd jpeg-6b

$./configure  --host=mipsel-linux  --prefix=$PREFIX--enable-shared

$vi Makefile

——把Makefile里的gcc替换成mipsel-linux-gcc

$make

$make install

(6)DirectFB-1.3.0

$tar zxvf DirectFB-1.3.0.tar.gz

$cd DirectFB-1.3.0

$./configure --prefix=$PREFIX --host=mipsel-linux --enable-sdl=no--enable-x11=no --enable-jpeg  --enable-freetype  --enable-png--with-gfxdrivers=none

参考:如果需要关闭jpeg的支持,可以加上--enable-jpeg=no。这里设置的DirectFB的安装路径是/usr/directfb,那么在目标系统中也必须保证DirectFB是在这样的一个目录中。因为DirectFB编译时已经把这个目录编译到程序中,无法后期设置。

$make

参考解决办法:

$cp /usr/directfb/lib/lib* /opt/gcc-3.4.6/mipsel-linux/lib/

——主要是用第五步的libpng-1.2.40所编译出来的库文件

来更新交叉编译工具链的动态库文件libpng12.so

$make install

(7)DirectFB-examples-1.2.0

$tar zxvf DirectFB-examples-1.2.0.tar.gz

$cd DirectFB-examples-1.2.0

$./configure  --host=mipsel-linux  --prefix=$PREFIX

$make

$make install

(8)可以查看交叉编译后的文件信息

$cd /usr/directfb/bin

$ls

$file df_andi

可以看到返回信息

df_andi: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV),dynamically linked (uses shared libs), for GNU/Linux 2.4.0, not stripped

DirectFB与样例交叉编译完成。

(1)拷贝样例程序于根文件系统的目录下

$cd /root/rootfs

$cp /usr/directfb usr

(2)编写配置环境的脚本

$vi fb.sh

内容为:

export LD_LIBRARY_PATH=/usr/directfb/lib:$LD_LIBRARY_PATH

(3)创建设备节点

$mknod dev/fb0 c 29 0

$ln -s dev/console dev/tty0

(4)创建DirectFB的配置文件

$viusr/directfb/etc/directfbrc

内容为:

system = fbdev

fbdev = /dev/fb0

wm = default

mode = 320x240

epth = 16

pixelformat = RGB16

mouse-protocol = IMPS/2

bg-color = 00FFFF

no-vt

(5)退出,制作文件系统镜像

$mkfs.cramfsrootfsrootfs-directfb.img

(6)开发板上电,烧写到开发板

PMON> devcp  tftp://192.168.0.244/rootfs-directfb.img  /dev/mtd1

(7)进到文件系统,运行样例

#sh fb.sh

#cd /usr/directfb/bin

#ls

#./df_andi

可以看到许多移动的企鹅。

至此移植完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值