主题 : 呆板 原创作品之mini2440+qte4.6.3(一)ubuntu开发环境建立 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 54300
精华: 0
发帖: 69
金钱: 350 两
威望: 70 点
贡献值: 0 点
综合积分: 138 分
注册时间: 2011-08-28
最后登录: 2015-12-02
楼主  发表于: 2012-05-05 18:42

 呆板 原创作品之mini2440+qte4.6.3(一)ubuntu开发环境建立

环境:ubunt11.10硬盘安装
qt
版本:qte4.6.3
设备平台:mini2440
交叉编辑器:4.4.3

1.
qt-everywhere-opensource-src-4.6.3.tar.gz压缩包解压为3份,分别编译PC ,嵌入式x86 arm 三个版本。

2.
编译 PC版:
进入pc目录
#./configure
#gmake
# gmake install
如果gmake不能使用:
编译ncurses程序的时候发现了这样一个错误
gmake: command not found

gmake的全名应该是GNUmake
原来在ubuntu中已经取消掉了它,都用make代替。
$ sudo ln -s /usr/bin/make/usr/bin/gmake


如果在gmake的时候出现:
/usr/include/X11/extensions/XTest.h:50:35:
错误:X11/extensions/XInput.h:没有该文件或目录
Infile included fromx11keyfaker.cpp:47:
/usr/include/X11/extensions/XTest.h:104:
错误:‘XDevice’未声明
/usr/include/X11/extensions/XTest.h:114:
错误:‘XDevice’未声明
/usr/include/X11/extensions/XTest.h:124:
错误:‘XDevice’未声明
/usr/include/X11/extensions/XTest.h:133:
错误:‘XDevice’未声明
make:*** [.obj/release-shared/x11keyfaker.o]
错误1
解决方法:
sudo apt-get install xorg-dev

3.
编译嵌入式x86版:
进入x86目录
#./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
#gmake
# gmake install
安装过程比较长,没有碰到过错误。
编译安装PC版中的qvfb
进入pc/tools/qvfb/目录
#make
如果make的时候出现了:
x11keyfaker.cpp:48:34:致命错误:X11/extensions/XTest.h:没有那个文件或目录
编译中断。
make: ***[.obj/release-shared/x11keyfaker.o] 错误1
解决方法:
sudoapt-get installxorg-dev
编译完毕,将pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.6.3/bin目录。
因为编译时间比较长,56步可以同时进行,以节省时间!

4
、编译嵌入式arm版(需要arm-linux-gcc的支持):
参考友善之臂开发板说明书里面,直接在arm-qte-4.6.3文件夹里执行build-all,之后执行mktarget即可。

5
、编译tslib对触摸屏支持:
下载,tslib-1.4.tar.gz,解压后:
#./configure --prefix=/usr/local/tslib/ --host=arm-linuxac_cv_func_malloc_0_nonnull=yes
# make
# makeinstall
我下载的包解压后没有configure文件,需要运行autogen.sh后才能生成。运行autogen.sh脚本,需要"autotools",autoconf,automake, libtool, 直接在软件中心安装这三个玩意


安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.6.3QtEmbedded-4.6.3QtEmbedded-4.6.3-arm

6
、移植
按照mini2440手册将target-qte-4.6.3.tgz放至开发板根本录解压即可


7
、将ubuntu上  /usr/local/tslib中的库复制到/opt/FriendlyARM/mini2440/root_qtopia/usr/local中。即将/usr/local/tslib下的所有文件复制到/opt/FriendlyARM/mini2440/root_qtopia/usr/local文件夹下。

如果运行时还缺少其他的库,复制方法相同。也可以使用arm-angstrom-linux-gnueabi-readelf-a 程序名 |grep "Share",命令查看需要哪些共享库,一起复制过去。

为支持触摸屏,开机自动设置环境变量,在2440/etc/profile中追加:
exportLD_LIBRARY_PATH=/usr/local/lib:$QTDIR/lib:$LD_LIBRARY_PATH                                                  
exportTSLIB_ROOT=/usr/local/lib    
exportTSLIB_TSDEVICE=/dev/input/event0
exportTSLIB_FBDEVICE=/dev/fb0  
exportTSLIB_PLUGINDIR=/usr/local/lib/ts
exportTSLIB_CONSOLEDEVICE=none
exportTSLIB_CONFFILE=/usr/local/etc/ts.conf
exportPOINTERCAL_FILE=/etc/pointercal
exportTSLIB_CALIBFILE=/etc/pointercal
exportQWS_MOUSE_PROTO=Tslib:/dev/input/event0

取消/usr/local/etc/ts.conf中的第二个注释:
#module_raw input
(去掉#,并且该行顶格)
我编辑时没有“#”

启动mini2440运行/usr/local/bin/ts_calibrate校正触摸屏。

8
、安装Qt-creator-2.0.0
直接在软件中心安装即可

9
Qt-creator开发环境的配置
启动Qt-creator

Qt-creator菜单栏Tools—Options…打开Options窗口。
Options界面左侧,点击Qt4—QtVersions右侧显示QtVersions设置界面。

QtVersions界面中点击Add
在下方VersionName:文本框内输入Qt的版本名,可以随便填,能区分各个版本即可(如pc版取Qt4.6.3-pcx86版取QtE4.6.3-x86arm版取QtE4.6.3-arm)。

单击Qmake Location:右侧Browse…按钮,在弹出的“SelectQMakeExecutable”窗口中找到对应版本的qmake程序(按照我们前面安转的,pc版路径:/usr/local/Trolltech/Qt-4.6.3/bin/qmakex86版路径:/usr/local/Trolltech/QtEmbedded-4.6.3/bin/qmakearm版路径:/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin/qmake),单击打开,回到QtVersions界面。
如果找不到/bin/qmake那么,chmod 777 /usr/local/Trolltech

同理完成其他版本的添加。

添加完毕,单击OK按钮关闭Options窗口。

到此,Qt-creator配置完毕(我暂时就配置了这些)。

10
、一个例子
usr/local/Trolltech/QtEmbedded-4.6.3/demos下复制books例程到root/tmp文件夹下。

启动Qt-creatorFile—OpenFile orProject…,打开root/tmp/books/books.pro

这里我们分两部分,首先编译x86下的,并运行在qvfb下,再编译arm下的,移到开发板下运行。

10.1
x86下的编译与调试
Qt-creator界面左侧点击Projects图标,打开工程设置界面。



EditProject Settings for Project books——BuildSettings——EditBuild Configuration:单击Add,在下拉列表中选择UsingQt Version “QtE4.6.3-x86”弹出对话框单击Ok按钮。

RunSettings-Arguments:文本框中添加参数“-qws”

设置完毕,点击Edit图标,回到编辑界面。

编译:在Build菜单下,先CleanProject “books”,然后BuildProject “books”,在右下角CompileOutput窗口能看到编译信息(按我们上面这样走来,到此编译不会出问题的)。

运行:
启动终端,#/usr/local/Trolltech/QtEmbedded-4.6.3/bin/qvfb -width 800 -height 480&,启动Qvfb
回到Qt-creatorBuild——Run,运行程序。
如果出现了:QtopiaCore data directory is not owned by user 1000
可能是/tmp下生成的东西,你rm /tmp/qt* /tmp/.qt*-r

切换我们的Qvfb窗口中,是不是看到Books运行的界面了。

调试:Debug——StartDebugging——StartDebugging,即可启动调试(请保证books路径中没有中文名,即不要把books工程放在了某个含有中文字符的文件夹下,不然无法启动调试)。

此时感觉如果前面编译选项EditProject Settings for Project books——BuildSettings——EditBuildConfiguration:选择Debug项,则调试启动速度比Release时的要快很多。

7.2
arm编译并移植

编译:在Projects设置界面下,选择UsingQt Version “QtE4.6.3-arm”项,余下参数不变,build。将生成的文件放至开发板运行即可。这里RunSettings-Arguments:文本框中不用填任何参数,出现  

p, li { white-space: pre-wrapFailed to start program. Path or permissions wrong?  不用管它,然后在xxx-build-desktop文件夹中会生成可执行文件,把它放至开发板,执行./xxx -qws即可运行。



级别: 侠客
UID: 82171
精华: 0
发帖: 53
金钱: 275 两
威望: 55 点
贡献值: 0 点
综合积分: 106 分
注册时间: 2012-11-19
最后登录: 2016-02-27
1楼  发表于: 2013-01-17 23:24
谢谢分享