Fedora搭建Qt Creator的ARM开发环境.docx

上传人:b****0 文档编号:17970781 上传时间:2023-08-05 格式:DOCX 页数:10 大小:20.11KB
下载 相关 举报
Fedora搭建Qt Creator的ARM开发环境.docx_第1页
第1页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第2页
第2页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第3页
第3页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第4页
第4页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第5页
第5页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第6页
第6页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第7页
第7页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第8页
第8页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第9页
第9页 / 共10页
Fedora搭建Qt Creator的ARM开发环境.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Fedora搭建Qt Creator的ARM开发环境.docx

《Fedora搭建Qt Creator的ARM开发环境.docx》由会员分享,可在线阅读,更多相关《Fedora搭建Qt Creator的ARM开发环境.docx(10页珍藏版)》请在冰点文库上搜索。

Fedora搭建Qt Creator的ARM开发环境.docx

Fedora搭建QtCreator的ARM开发环境

Fedora12下搭建QtCreator的ARM开发环境并移植Qt4.6.2到Micro2440

(一)

管理提醒:

本帖被kasim执行置顶操作(2010-04-11)

Fedora12下搭建QtCreator的ARM开发环境并移植Qt4.6.2到Micro2440

(一)

参考:

环境:

虚拟机Fedora12(建议安装VmwareTools,详细安装方法参照Vmware帮助文档),USB串口,minicom终端。

(minicom经常打不开ttyUSB0设备,我的解决方法是,打不开时就将USB串口移除,运行minicom,然后再接上USB串口,此时运行minicom一般都能打开设备)

软件准备:

用于Linux/X1132位的QtCreator1.3.1二进制软件包qt-creator-linux-x86-opensource-1.3.1.bin(

用于嵌入式Linux的Qt库4.6.2包qt-everywhere-opensource-src-4.6.2.tar.gz(

下载tslib1.4,这个忘了在哪下载的了,网上有很多,有些不能用,大家自己找个能用的吧。

*以下安装方法主要来自文章

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

我在root目录下建立tmp文件夹,将qt-everywhere-opensource-src-4.6.2.tar.gz直接解压后复制2分,分别命名为pc、x86、arm。

 

1.编译PC版:

进入pc目录

#./configure

#gmake

#gmakeinstall

安装过程比较长,没有碰到过错误。

2.编译嵌入式x86版:

进入x86目录

#./configure-embeddedx86-qt-gfx-qvfb-qt-kbd-qvfb-qt-mouse-qvfb

#gmake

#gmakeinstall

安装过程比较长,没有碰到过错误。

编译安装PC版中的qvfb:

进入pc/tools/qvfb/目录

#make

编译完毕,将pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.6.2/bin目录。

3.编译嵌入式arm版(需要arm-linux-gcc的支持):

使用友善自带的ARM-LinuxGCC4.3.2编译完了,程序移植到开发板上后,出现SegmentationFault错误,按原文,使用4.1.2正常。

直接将arm920t-eabi.tgz解压缩到根目录,不可以像文章中说的那样“我把它放在:

/usr/local/arm/4.1.2/”,最起码我放过去后出错了。

把编译器路径加入系统环境变量,运行命令:

#gedit/root/.bashrc

编辑/root/.bashrc文件,在最后一行加上exportPATH=/opt/toolchains/arm920t-eabi/bin:

$PATH

 

编译tslib对触摸屏支持:

下载,tslib1.4.tar.gz,解压后:

#./configure--prefix=/usr/local/tslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes

#make

#makeinstall

我下载的包解压后没有configure文件,需要运行autogen.sh后才能生成。

设置环境变量,以便编译时找到相关的库:

#exportCPLUS_INCLUDE_PATH=/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++:

/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++/arm-none-linux-gnueabi

#exportPATH=/opt/toolchains/arm920t-eabi/bin:

$PATH

修改qt-everywhere-opensource-src-4.6.2/mkspecs/qws/linux-arm-g++/qmake.conf文件(添加lts参数):

QMAKE_CC               =arm-linux-gcc-lts

QMAKE_CXX              =arm-linux-g++-lts

QMAKE_LINK             =arm-linux-g++-lts

QMAKE_LINK_SHLIB       =arm-linux-g++-lts

这一步必须有,不然肯定出错。

配置:

必须加上“-prefix/usr/local/Trolltech/QtEmbedded-4.6.2-arm”参数,不然安装后不在QtEmbedded-4.6.2-arm文件夹下,而是覆盖了QtEmbedded-4.6.2。

#./configure\

-prefix/usr/local/Trolltech/QtEmbedded-4.6.2-arm\

-opensource\

-confirm-license\

-release-shared\

-embeddedarm\

-xplatformqws/linux-arm-g++\

-depths16,18,24\

-fast\

-optimized-qmake\

-pch\

-qt-sql-sqlite\

-qt-libjpeg\

-qt-zlib\

-qt-libpng\

-qt-freetype\

-little-endian-host-little-endian\

-no-qt3support\

-no-libtiff-no-libmng\

-no-opengl\

-no-mmx-no-sse-no-sse2\

-no-3dnow\

-no-openssl\

-no-webkit\

-no-qvfb\

-no-phonon\

-no-nis\

-no-opengl\

-no-cups\

-no-glib\

-no-xcursor-no-xfixes-no-xrandr-no-xrender\

-no-separate-debug-info\

-nomakeexamples-nomaketools-nomakedocs\

-qt-mouse-tslib-I/usr/local/tslib/include-L/usr/local/tslib/lib

上面划掉的蓝色内容,可以不要的,这样编辑也不会出错(虚拟机搞坏了,不得已重装,配置参数时忘了干上面的工作了,结果发现没出错)。

关于配置参数,参照一下这篇文章吧,可以用configure-embedded–help查看。

如果你放弃配置,则使用命令:

#gmakeconfclean

编译:

#gmake

安装:

#gmakeinstall

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

Qt-4.6.2、QtEmbedded-4.6.2、QtEmbedded-4.6.2-arm。

4、移植

我是通过NFS启动的系统,具体操作可以参照友善的手册,在

将Fedora12上 /usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib中的所有文件复制到/opt/FriendlyARM/mini2440/root_qtopia/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib目录中(对应目录复制,相当于复制到了开发板对应目录中),其实需要的时候可以裁剪,看原文吧。

将Fedora12上 /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_rawinput(去掉#,并且该行顶格)

我编辑时没有“#”

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

到此Qt4.6.2的移植暂告一段落,移植还没有完,此时如果在开发板上运行Qt4.6.2-arm编译的程序,则会出现“relocationerror:

/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/libQtGui.so.4:

symbolpowf,versionGLIBCXX_3.4notdefinedinfilelibstdc++.so.6withlinktimereference”错误。

Fedora12下搭建QtCreator的ARM开发环境并移植Qt4.6.2到Micro2440

(二)

继续……

5、安装Qt-creator-1.3.1

把下载的qt-creator-linux-x86-opensource-1.3.1.bin文件拷到一个目录(如前面的/root/tmp目录),进入目录:

设置qt-creator-linux-x86-opensource-1.3.1.bin文件为可执行

#chmod+xqt-creator-linux-x86-opensource-1.3.1.bin

安装:

#./qt-creator-linux-x86-opensource-1.3.1.bin

启动安装界面,默认一路Next即可。

*如果我们下载的是Qt的SDK(qt-sdk-linux-x86-opensource-2010.02.bin),这里可以选择安装Qt的开发环境,这样,在前面安装pc版Qt那步就可以省了,关键是可以省出很多时间的。

6、Qt-creator开发环境的配置

启动Qt-creator。

在Qt-creator菜单栏Tools—〉Options…打开Options窗口。

在Options界面左侧,点击Qt4—〉QtVersions右侧显示QtVersions设置界面。

在QtVersions界面中点击那个蓝色的大“╋”号图标

在下方VersionName:

文本框内输入Qt的版本名,可以随便填,能区分各个版本即可(如pc版取Qt4.6.2-pc、x86版取QtE4.6.2-x86、arm版取QtE4.6.2-arm)。

单击QmakeLocation:

右侧Browse…按钮,在弹出的“SelectQMakeExecutable”窗口中找到对应版本的qmake程序(按照我们前面安转的,pc版路径:

/usr/local/Trolltech/Qt-4.6.2/bin/qmake,x86版路径:

/usr/local/Trolltech/QtEmbedded-4.6.2/bin/qmake,arm版路径:

/usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin/qmake),单击打开,回到QtVersions界面。

回到QtVersions界面,单击DebuggingHelper:

右侧Rebuild按钮,等待片刻,看到DebuggingHelper:

后出现一个绿色的“√”即可。

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

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

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

7、一个例子

从usr/local/Trolltech/QtEmbedded-4.6.2/demos下复制books例程到root/tmp文件夹下。

启动Qt-creator,File—〉OpenFileorProject…,打开root/tmp/books/books.pro。

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

7.1、x86下的编译与调试

在Qt-creator界面左侧点击Projects图标,打开工程设置界面。

从上往下,

在EditProjectSettingsforProjectbooks——〉BuildSettings——〉EditBuildConfiguration:

单击Add,在下拉列表中选择UsingQtVersion“QtE4.6.2-x86”弹出对话框单击Ok按钮,在EditBuildConfiguration:

下会出现蓝色的MakeQtE4.6.3-x86Releaseactive.字符,单击激活QtE4.6.3-x86Release。

在RunSettings——〉Editrunconfiguration:

右侧单击ShowDetails按钮,在打开的下拉列表中Arguments:

文本框中添加参数“-qws”。

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

编译:

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

运行:

启动终端,#/usr/local/Trolltech/QtEmbedded-4.6.2/bin/qvfb-width800-height480&,启动Qvfb。

回到Qt-creator,Build——〉Run,运行程序。

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

调试:

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

此时感觉如果前面编译选项EditProjectSettingsforProjectbooks——〉BuildSettings——〉EditBuildConfiguration:

选择Debug项,则调试启动速度比Release时的要快很多。

7.2、arm编译并移植

编译:

在Projects设置界面下,选择UsingQtVersion“QtE4.6.2-arm”项,余下参数不变,build。

复制编译好的文件(也许还有images文件夹)到2440的NFS文件系统的某个目录下,我直接把books文件夹复制过去了(在Fedora12文件系统下是/opt/FriendlyARM/mini2440/root_qtopia/home/plg文件夹下)。

运行及错误处理:

在minicom下面,ps一下,找到qpe进程对应的PID,比如1234,然后通过kill1234杀死Qtopia。

进入books目录,执行./books–qws,此时就会出现前面讲到的“relocationerror:

/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/libQtGui.so.4:

symbolpowf,versionGLIBCXX_3.4notdefinedinfilelibstdc++.so.6withlinktimereference”错误。

我的解决办法是进入主机/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib目录下找到libstdc++.so.6链接的文件libstdc++.so.6.0.8(通过右键属性——〉基本,可以看到链接的文件),复制并重命名为libstdc++.so.6到/opt/FriendlyARM/mini2440/root_qtopia/lib文件夹下,之前别忘了将该文件夹下的libstdc++.so.6移到其它地方或重命名,如libstdc++.so.6.old。

*重命名其实是比较野蛮的方法,可以用ln命令的,参照下面这篇文章……

然后再运行./books–qws,看问题是不是解决了!

这里有个新的问题还没解决,就是在开发版上运行时字非常小,留着以后处理吧。

OK!

至此,Fedora12下搭建QtCreator的ARM开发环境并移植Qt4.6.2到Micro2440算告一段落了,留下两个问题:

字体非常小的问题、开发板上的远程调试,留待下次解决。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2