Fedora12下搭建Qt Creator的ARM开发环境
并
移植Qt4.6.2到Micro2440(一)
参考:
环境:虚拟机Fedora12(建议安装Vmware Tools,详细安装方法参照Vmware帮助文档),USB串口,minicom终端。(minicom经常打不开ttyUSB0设备,我的解决方法是,打不开时就将USB串口移除,运行minicom,然后再接上USB串口,此时运行minicom一般都能打开设备)
软件准备:
到http://qt.nokia.com/downloads-cn下载最新版的软件包,当前是:
用于 Linux/X11 32位
的 Qt Creator 1.3.1
二进制软件包qt-creator-linux-x86-opensource-1.3.1.bin(http://qt.nokia.com/downloads/qt-creator-binary-for-linux-x11-32-bit)
用于嵌入式 Linux
的 Qt
库 4.6.2包qt-everywhere-opensource-src-4.6.2.tar.gz(http://qt.nokia.com/downloads/embedded-linux-cpp)
解压到默认就行。tar zxvf
arm920t-eabi.tgz -C /
不然后面编译arm版本时,gmake install 时会出错。
到http://www.arm9.net/download.asp下载Root_Qtopia,我用的是友善光盘里的root_qtopia-20100108.tar.gz(http://www.arm123.com.cn/linux/root_qtopia-20100108.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
# gmake install
安装过程比较长,没有碰到过错误。
2.
编译嵌入式x86版:
进入x86目录
# ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
# gmake
# gmake install
安装过程比较长,没有碰到过错误。
编译安装PC版中的 qvfb:
进入pc/tools/qvfb/目录
#make
编译完毕,将pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.6.2/bin目录。
3.
编译嵌入式arm版(需要 arm-linux-gcc
的支持):
使用友善自带的ARM-Linux GCC 4.3.2编译完了,程序移植到开发板上后,出现Segmentation
Fault错误,按原文,使用4.1.2正常。
直接将arm920t-eabi.tgz解压缩到根目录,不可以像文章中说的那样“我把它放在:/usr/local/arm/4.1.2/
”,最起码我放过去后出错了。
把编译器路径加入系统环境变量,运行命令:
#gedit /root/.bashrc
编辑/root/.bashrc文件,在最后一行加上 export PATH=/opt/toolchains/arm920t-eabi/bin:$PATH
编译tslib对触摸屏支持:
下载,tslib1.4.tar.gz,解压后:
# ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make
# make install
我下载的包解压后没有configure文件,需要运行autogen.sh后才能生成。
设置环境变量,以便编译时找到相关的库:
# export CPLUS_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
# export PATH=/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 \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,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 \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib
-I/usr/local/tslib/include -L/usr/local/tslib/lib
上面划掉的蓝色内容,可以不要的,这样编辑也不会出错(虚拟机搞坏了,不得已重装,配置参数时忘了干上面的工作了,结果发现没出错)。
关于配置参数,参照一下这篇文章吧,可以用configure -embedded –help查看。
http://www.cuteqt.com/blog/?p=582
如果你放弃配置,则使用命令:# gmake confclean
编译:# gmake
安装:# gmake install
安装完成后,在 /usr/local/Trolltech
目录中有三个文件夹:Qt-4.6.2、QtEmbedded-4.6.2、QtEmbedded-4.6.2-arm。
4、移植
我是通过NFS启动的系统,具体操作可以参照友善的手册,在http://www.arm9.net/download.asp有下载,在第5.5.3节通过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中追加:
export LD_LIBRARY_PATH=/usr/local/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_ROOT=/usr/local/lib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
取消/usr/local/etc/ts.conf中的第一个注释:
# module_raw input
(去掉#,并且该行顶格)
我编辑时没有“#”
启动Micro2440运行 /usr/local/bin/ts_calibrate
校正触摸屏。
到此Qt4.6.2的移植暂告一段落,移植还没有完,此时如果在开发板上运行Qt4.6.2-arm编译的程序,则会出现“relocation
error: /usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/libQtGui.so.4: symbol powf, version GLIBCXX_3.4 not defined in file libstdc++.so.6 with link time reference”错误。
分享到:
相关推荐
Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440
Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440
Fedora9下建立QtEmbedded 4.5开发环境.doc
Fedora10下搭建ARM开发环境QTE及移植过程[借鉴].pdf
本文以图文并茂的方式记录了 QT开发环境在fedora15 及TQ210开发板上的移植过程,并讲解了qt-creator的使用方法,适合正在QT开发环境搭建中挣扎,尚未进入QT开发流程的童鞋
本文档记录了在fedora系统中配置针对TQ210开发板的QT开发环境搭建的详细步骤
Fedora下Qt环境搭建[参考].pdf
编译环境: fedora9 QT 4.7.1(Qt creator2.1.0) balloon是运行在fedora9虚拟机里 station是运行在tiny6410arm板上 (使用Qt creator最新版可以轻易的改变目标平台) 对学习QT的DateStream类及序列化很有好处哦。 发送...
详细介绍了PC机时fedora系统,移植QT4到2440上的过程
开发板:友善之臂 mini2440-128M 主机: VMware 5.5 + Fedora 9 开发版内核:Linux 2.6.32.2 交叉编译器:arm-linux-gcc-4.3.2
搭建嵌入式QT开发环境qt-x11-opensource-src-4.5.0在fedora core 7平台上搭建Qt开发平台的详细步骤
Linux上的QT4移植过程 1.我的环境及所需资源: PC机操作系统:fedora 9 交叉编译工具:arm-linux-gcc-4.3.2.tar.gz 所需资源: tslib-1.4.tar.gz qt-embedded-linux-opensource-src-4.5.1.tar.gz qt-x11-linux-...
在LINUX上,基于fedora13的QT/QTE环境搭建全攻略,综合各种教程,安装调试通过,共享一下,不足之处,请见谅~
原创mini2440 qt4移植教程,系统为fedora16(系统不限),移植了qt4.5.3,简单明了,学习qt的第一步!!
qt4.5.3 移植手册 Fedora系统 非常详细
fedora15环境搭建
其中主机操作系统采用 Fedora 9( Linux-2.6.25),目标机采用友善之臂mini2440 ,Android OS内核采用 Linux-2.6.25-android-1.0,编译工具采用 arm-linux-gcc-4.3.2。最后,成功将Android OS移植到开发板上。
在Fedora(32bit)上编译好的QTE 4.8.5, PC版的。 mini2440自带资料里面给的是64bit系统下编译的,无法在32bit系统使用。
在Fedora10系统下,搭建JSP开发环境全过程,09.4.23日测试通过。 JDK安装包 :jdk-6u12-linux-i586-rpm.bin Tomacat安装包 :apache-tomcat-6.0.18.tar.gz MYSQL安装包 :mysql-5.1.31-linux-i686-glibc23.tar.gz
现在在官网下的qt因为太新,所以有些fedora安装不了,总是提示说缺少什么之类的,该资源在fedora下可以安装。