[ZLG-ARM] Qtopia free 2.2.0 交叉编译详细过程

[复制链接]
 楼主| qtopia 发表于 2009-7-4 13:00 | 显示全部楼层 |阅读模式
今天在Fedora&nbsp;6主机上成功交叉编译Qtopia&nbsp;free&nbsp;2.2.0,因为中间也经历了一些小波折,故特此撰文,希望能对进行同样工作的新手有所帮助。<br /><br />一.环境描述<br />1.&nbsp;开发环境<br />HOST环境:<br />&nbsp;&nbsp;&nbsp;系统:Fedora&nbsp;6&nbsp;完全安装<br />&nbsp;&nbsp;&nbsp;交叉工具arm&nbsp;2.95.3<br />TARGET环境<br />&nbsp;&nbsp;&nbsp;arm&nbsp;2410<br />&nbsp;&nbsp;&nbsp;&nbsp;320*240屏外加触摸屏<br />&nbsp;&nbsp;&nbsp;yaffs文件系统<br />软件:<br />&nbsp;&nbsp;&nbsp;cross-2.95.3.tar.bz2<br />&nbsp;&nbsp;&nbsp;qtopia-free-src-2.2.0.tar.gz&nbsp;<br />&nbsp;&nbsp;&nbsp;e2fsprogs-1.39.tar.gz<br />&nbsp;&nbsp;&nbsp;jpegsrc.v6b.tar.gz<br />&nbsp;&nbsp;libpng-1.2.14.tar.bz2<br />&nbsp;&nbsp;&nbsp;tslib-1.3.tar.bz2<br />&nbsp;&nbsp;&nbsp;zlib-1.2.3.tar.bz2<br /><br />2.&nbsp;准备路径<br />我的arm-linux-gcc已安装到/usr/local/arm/2.95.3/bin/,并已设置$PATH变量<br />我在home在建立了一个目录,并设置环境变量:<br />mkdir&nbsp;/home/qtopia-arm-home<br />设置环境变量:<br />export&nbsp;MYHOME=/home/qtopia-arm-home<br />export&nbsp;PATH=$PATH:/usr/local/arm/2.95.3/bin<br /><br />我将上面的两句写到一个文件中,存为,执行<br />source&nbsp;/home/qtopia-arm-home/<br /><br />二、软件下载<br /><br />1.cross-2.95.3.tar.bz2<br />下载地址:<br />ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/cross-2.95.3.tar.bz2<br /><br />2.qtopia-free-src-2.2.0.tar.gz&nbsp;<br />下载地址:<br />ftp://ftp.trolltech.com/pub/qt/source/qtopia-free-src-2.2.0.tar.gz&nbsp;<br /><br />3.e2fsprogs-1.39.tar.gz<br />下载地址:<br />http://nchc.dl.sourceforge.net/sourceforge/e2fsprogs/e2fsprogs-1.39.tar.gz<br /><br />4.jpegsrc.v6b.tar.gz<br />下载地址:<br />http://superb-east.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.14.tar.bz2<br /><br />5.libpng-1.2.14.tar.bz2<br />下载地址:<br />http://superb-east.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.14.tar.bz2<br /><br />6.tslib-1.3.tar.bz2(触摸屏校正工具:也可以用QT自带的,这样就不必下载)<br />下载地址:<br />http://mail.pdaxrom.org/download/1.1.0beta4/src/tslib-1.3.tar.bz2<br /><br />7.zlib-1.2.3.tar.bz2<br />下载地址:<br />http://www.zlib.net/zlib-1.2.3.tar.gz<br /><br />三、编译步骤:<br />1.&nbsp;得到本机运行版本uic&nbsp;工具<br />为了编译qtopia&nbsp;,需要下载QT/Embedded,但是为了编译QT/Embedded,又需要QT/X11的&nbsp;uic编译器(它将qt2-designer创建的UI格式的文件转换成cpp文件),你可以下载QT/X11编译生成uic,也可以从网上下载一个uic。<br />cd&nbsp;$MYHOME<br />wget&nbsp;http://vanille.de/tools/uic-qt2<br />下载后改变权限<br />chmod&nbsp;u+rx&nbsp;uic-qt2<br />然后建立一个目录<br />mkdir&nbsp;$MYHOME/nfs<br />将qtopia-free-2.2.0解压缩至$MYHOME/nfs/qtopia-free-2.2.0<br />设置环境变量:<br />export&nbsp;QPEDIR=$MYHOME/nfs/qtopia-free-2.2.0<br />export&nbsp;QTDIR=$QPEDIR/qt2<br />拷贝uic<br />cd&nbsp;$MYHOME<br />cp&nbsp;uic-qt2&nbsp;$QTDIR/bin/uic<br /><br />你也可以自己编译出来一个,不过需要较长时间。<br />解压qtopia-free-src-2.2.0.tar.gz到MYHOME,并改名为qtopia_x86<br />cd&nbsp;$MYHOME<br />tar&nbsp;zxvf&nbsp;qtopia-free-src-2.2.0.tar.gz<br />mv&nbsp;qtopia-free-2.2.0qtopia_x86<br />cd&nbsp;qtopia_x86<br />echo&nbsp;'yes'|./configure<br />make<br />将其cp至&nbsp;$QPEDIR<br />cp&nbsp;$MYHOME/qtopia_x86/qt2/bin/uic&nbsp;&nbsp;&nbsp;$QTDIR/bin/<br /><br />2.&nbsp;编译相关库<br />mkdir&nbsp;$MYHOME/arm/<br />将上面的e2fsprogs-1.39.tar.gz.tar.gz,jpegsrc.v6b.tar.gz,libpng-1.2.14.tar.bz2,tslib-1.3.tar.bz2,zlib-1.2.3.tar.bz2解压至$MYHOME/arm目录(你也可以自己指定目录),并相应更名目录为&nbsp;e2fs,jpeg,libpng,tslib,zlib。并建立mkdir&nbsp;$MYHOME/arm/lib&nbsp;;mkdir&nbsp;$MYHOME/arm/include&nbsp;(这两个目录是存放编译后的库与头文件,为后面交叉编译用)<br />mkdir&nbsp;$MYHOME/arm/lib<br />mkdir&nbsp;$MYHOME/arm/include<br /><br />然后分别编译:<br />1.e2fs:<br />cd&nbsp;$MYHOME/arm/e2fs<br />./configure&nbsp;--host=arm-linux&nbsp;--enable-elf-shlibs--with-cc=arm-linux-gcc&nbsp;--with-linker=arm-linux-ld&nbsp;--prefix=/usr/local/arm/2.95.3/arm-linux&nbsp;<br />make<br /><br />cp&nbsp;lib/libuuid.so*&nbsp;../lib<br /><br />2.jpeg:<br />cd&nbsp;$MYHOME/arm/jpeg<br />./configure&nbsp;–enable-shared<br />gedit&nbsp;Makefile&nbsp;&<br />修改:<br />CC=&nbsp;arm-linux-gcc<br />AR=&nbsp;arm-linux-ar&nbsp;rc<br />AR2=arm-linux-ranlib<br />新手注意:第一个和后两个不在一起,你要搜索一下CC,AR找到后用#注释掉原来的,加上新的。<br />例如:<br />#AR=&nbsp;ar&nbsp;rc<br />AR=&nbsp;arm-linux-ar&nbsp;rc<br /><br />make<br /><br />cp&nbsp;*.h&nbsp;../include/<br />cp&nbsp;libjpeg.a&nbsp;../lib/<br /><br />3.zlib:<br />cd&nbsp;$MYHOME/arm/zlib<br />./configure&nbsp;-shared<br />gedit&nbsp;Makefile&nbsp;&<br />修改:<br />&nbsp;&nbsp;&nbsp;&nbsp;[begin]<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;CC=arm-linux-gcc<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;LDSHARED=arm-linux-gcc&nbsp;-shared&nbsp;-Wl,-soname,libz.so.1<br />&nbsp;&nbsp;&nbsp;&nbsp;CPP=arm-linux-gcc&nbsp;-E<br />&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;AR=arm-linux-arrc<br />&nbsp;&nbsp;&nbsp;&nbsp;RANLIB=arm-linux-ranlib<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;prefix&nbsp;=/usr/local/arm/2.95.3/arm-linux<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;[end]<br /><br />make<br />cp&nbsp;libz.so*&nbsp;../lib/<br />cp&nbsp;*.h&nbsp;../include/<br /><br />4.libpng:<br />cd&nbsp;$MYHOME/arm/libpng&nbsp;&nbsp;&nbsp;&nbsp;<br />cp&nbsp;s/makefile.linux&nbsp;&nbsp;&nbsp;./Makefile&nbsp;&nbsp;&nbsp;&nbsp;<br />gedit&nbsp;Makefile&nbsp;&<br />修改:<br />&nbsp;&nbsp;&nbsp;&nbsp;[begin]<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;AR_RC=arm-linux-ar&nbsp;rc<br />&nbsp;&nbsp;&nbsp;&nbsp;CC=arm-linux-gcc<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;RANLIB=arm-linux-ranlib<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;prefix=/usr/local/arm/2.95.3/arm-linux<br />&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;[end]<br />&nbsp;&nbsp;&nbsp;<br />make<br />cp&nbsp;libpng12.so*&nbsp;&nbsp;&nbsp;../lib/<br />cp&nbsp;libpng12.so&nbsp;../lib/libpng.so<br />cp&nbsp;*.h&nbsp;../include/<br />&nbsp;&nbsp;&nbsp;<br />5.tslib(如果准备用Qt自带的触摸屏校正工具可以不编译):<br />cd&nbsp;$MYHOME/arm/tslib<br />./autogen.sh<br />echo&quot;ac_cv_func_malloc_0_nonnull=yes&quot;&nbsp;&gtarm-linux.cache<br />./configure&nbsp;--host=arm-linux--cache-file=arm-linux.cache&nbsp;--enable-inputapi=no&nbsp;--srcdir=/home/qtopia-arm-home/arm/tslib<br /><br />为了防止出现“libtool:link:&nbsp;only&nbsp;absolute&nbsp;run-paths&nbsp;are&nbsp;allowed“的错误,在/tslib/plugins/Makefile里面找rpath,找到将其注释并加上绝对路径。<br />#LDFLAGS&nbsp;:=$(LDFLAGS)&nbsp;-rpath&nbsp;$(PLUGIN_DIR)<br />LDFLAGS&nbsp;:=$(LDFLAGS)&nbsp;-rpath&nbsp;`cd&nbsp;$(PLUGIN_DIR)&nbsp;&&&nbsp;pwd`<br /><br />make<br /><br />cp&nbsp;src/.libs/libts-0.0.so.0*&nbsp;../lib/<br />cp&nbsp;src/.libs/libts.so&nbsp;../lib/<br />cp&nbsp;src/*.h&nbsp;../include/<br /><br />3.&nbsp;编译Qtopia<br />(1)准备:<br />建立安装目录:<br />mkdir&nbsp;$MYHOME/nfs/qtopia<br /><br />修改文件<br />&nbsp;&nbsp;&nbsp;vi$MYHOME/nfs/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf<br />将此行<br />&nbsp;&nbsp;&nbsp;QMAKE_LIBS_QT&nbsp;=&nbsp;-lqte<br />修改为<br />&nbsp;&nbsp;&nbsp;QMAKE_LIBS_QT=&nbsp;-lqte&nbsp;-lpng&nbsp;-lts&nbsp;-lz&nbsp;-luuid&nbsp;-ljpeg<br /><br />如果想让Qtopia自己支持触摸屏,需要修改$QPEDIR/src/qt/qconfig-qpe.h文件,定义相应的宏,在最后加上<br />#define&nbsp;QT_QWS_IPAQ<br />#define&nbsp;QT_QWS_IPAQ_RAW<br /><br /><br />在最后运行的时候,加上如下环境变量:<br />exportQWS_MOUSE_PROTO=TPanel:/dev/h3600_tsraw(触摸屏具体名称和位置可能需要根据实际情况修改)<br /><br /><br />如果想让Qtopia支持鼠标,需要修改$QPEDIR/src/qt/qconfig-qpe.h文件<br />注释如下部分:<br />/*<br />#ifndef&nbsp;QT_NO_QWS_CURSOR<br />#define&nbsp;QT_NO_QWS_CURSOR<br />#endif<br />#ifndef&nbsp;QT_NO_QWS_MOUSE_AUTO<br />#define&nbsp;QT_NO_QWS_MOUSE_AUTO<br />#endif<br />#ifndef&nbsp;QT_NO_QWS_MOUSE_PC<br />#define&nbsp;QT_NO_QWS_MOUSE_PC<br />#endif<br />*/<br /><br /><br />在最后运行的时候,加上如下环境变量:<br />exportQWS_MOUSE_PROTO=TPanel:/dev/h3600_tsraw(触摸屏具体名称和位置可能需要根据实际情况修改)<br />export&nbsp;QWS_MOUSE_PROTO=USB:/dev/input/mice<br /><br />如果想让Qtopia支持USB标准键盘,在最后运行的时候,加上如下环境变量:<br />export&nbsp;QWS_KEYBOARD=USB:/dev/input/event0<br /><br />(2)设置环境变量:<br />&nbsp;&nbsp;&nbsp;exportQPEDIR=$MYHOME/nfs/qtopia-free-2.2.0/qtopia<br />&nbsp;&nbsp;&nbsp;exportQTDIR=$MYHOME/nfs/qtopia-free-2.2.0/qt2<br />&nbsp;&nbsp;&nbsp;exportLD_LIBRARY_PATH=$QTDIR/libQPEDIR/lib<br />&nbsp;&nbsp;&nbsp;exportTMAKEDIR=$MYHOME/nfs/qtopia-free-2.2.0/tmake<br />&nbsp;&nbsp;&nbsp;exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++<br /><br />(3)准备配置文件:<br />&nbsp;&nbsp;&nbsp;cp$QPEDIR/src/qt/qconfig-qpe.h&nbsp;$QTDIR/src/tools<br />&nbsp;&nbsp;&nbsp;cd$QPEDIR/src/libraries/qtopia<br />&nbsp;&nbsp;&nbsp;cpcustom-linux-ipaq-g++.cpp&nbsp;custom-linux-arm-g++.cpp<br />&nbsp;&nbsp;&nbsp;cpcustom-linux-ipaq-g++.h&nbsp;custom-linux-arm-g++.h<br /><br />(4)开始configure<br />&nbsp;&nbsp;&nbsp;cd$MYHOME/nfs/qtopia-free-2.2.0<br />&nbsp;&nbsp;&nbsp;如果想让Qtopia自己支持触摸屏,用下面的命令:<br />&nbsp;&nbsp;&nbsp;echo'yes'|./configure&nbsp;-qte&nbsp;&quot;-embedded&nbsp;-xplatform&nbsp;linux-arm-g++&nbsp;-qconfig&nbsp;qpe&nbsp;-no-qvfb-depths&nbsp;16,24&nbsp;-system-jpeg&nbsp;-system-libpng&nbsp;-system-zlib&nbsp;-gif&nbsp;-thread&nbsp;-no-xft-release&nbsp;-I$MYHOME/arm/include&nbsp;-L$MYHOME/arm/lib&nbsp;-lpng&nbsp;-lz&nbsp;-luuid&nbsp;-ljpeg&quot;-qpe&nbsp;'-xplatform&nbsp;linux-arm-g++&nbsp;-edition&nbsp;pda&nbsp;-displaysize&nbsp;320x240-I$MYHOME/arm/include&nbsp;-L$MYHOME/arm/lib&nbsp;-prefix=$MYHOME/nfs/qtopia'<br /><br />&nbsp;&nbsp;&nbsp;如果想用tslib可以加上-tslib和-lts选项:<br />&nbsp;&nbsp;&nbsp;echo'yes'|./configure&nbsp;-qte&nbsp;&quot;-embedded&nbsp;-xplatform&nbsp;linux-arm-g++&nbsp;-qconfig&nbsp;qpe-no-qvfb&nbsp;-depths&nbsp;16,24&nbsp;-system-jpeg&nbsp;-system-libpng&nbsp;-system-zlib&nbsp;-tslib&nbsp;-gif-thread&nbsp;-no-xft&nbsp;-release&nbsp;-I$MYHOME/arm/include&nbsp;-L$MYHOME/arm/lib&nbsp;-lpng&nbsp;-lts&nbsp;-lz-luuid&nbsp;-ljpeg&quot;&nbsp;-qpe&nbsp;'-xplatform&nbsp;linux-arm-g++&nbsp;-edition&nbsp;pda&nbsp;-displaysize320x240&nbsp;-I$MYHOME/arm/include&nbsp;-L$MYHOME/arm/lib&nbsp;-prefix=$MYHOME/nfs/qtopia'<br />&nbsp;<br />(5)make<br />make的过程中会出现一些错误,下面是我出现的错误和相应的解决办法,希望对你有用:<br />错误一:<br />/home&nbsp;/qtopia-arm-home/nfs/qtopia-free-2.2.0/qt2/include/qvaluestack.h:57:错误:不能从&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;‘QValueListIterator&ltQMap&ltQString,&nbsp;QString&gt&nbsp;&gt’&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;转换到&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;‘const&nbsp;char*’,为实参&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;‘1’(属于&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;‘int&nbsp;remove(const&nbsp;char*)’)<br />解决办法:<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove(&nbsp;this-&gtfromLast()&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this-&gtremove(this-&gtfromLast()&nbsp;);<br /><br />错误二:<br />jpeglib.h错误<br />解决办法:<br />原因是在$MYHOME/nfs/qtopia-free-2.2.0/qtopia/src/3rdparty/plugins/codecs/libflash<br />中有一个jpeglib.h,但是它不是我们需要的,我们需要的已经拷贝在/home/qtopia-arm-home/arm/include中了,所以将其改名:<br />cd&nbsp;$MYHOME/nfs/qtopia-free-2.2.0/qtopia/src/3rdparty/plugins/codecs/libflash<br />mv&nbsp;jpeglib.h&nbsp;jpeglib.h.bak<br />编译成功了可以再该回来。<br /><br />错误三:<br />/usr/local/arm/2.95.3/arm-linux/bin/ld:cannot&nbsp;find&nbsp;-ljpeg<br />解决办法:<br />拷贝libjpeg.a到arm/lib<br /><br />错误四:<br />In&nbsp;file&nbsp;included&nbsp;fromvideocaptureview.cpp:54:<br />/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/videodev.h:5:linux/version.h:&nbsp;?????????<br />make[6]:&nbsp;***[.obj/release-shared/videocaptureview.o]&nbsp;错误&nbsp;1<br />解决办法:<br />在./usr/local/arm/2.95.3/arm-linux/sys-include/linux/videodev.h.&nbsp;文件中把#i&nbsp;nclude&ltlinux/version.h&gt一行屏蔽<br /><br />错误五:<br />/usr/local/arm/2.95.3/arm-linux/bin/ld:warning:&nbsp;libuuid.so.1,&nbsp;needed&nbsp;by&nbsp;/home/q&nbsp;topia-arm-home/nfs/qtopia-free-2.2.0/qtopia/lib/libqpe.so,not&nbsp;found&nbsp;(try&nbsp;using&nbsp;-rpath&nbsp;or-rpath-link)<br />/usr/local/arm/2.95.3/arm-linux/bin/ld:warning:&nbsp;libts-0.0.so.0,&nbsp;needed&nbsp;by&nbsp;/home&nbsp;/qtopia-arm-home/nfs/qtopia-free-2.2.0/qtopia/lib/libqte.so,not&nbsp;found&nbsp;(try&nbsp;usin&nbsp;g&nbsp;-rpath&nbsp;or&nbsp;-rpath-link)<br />/usr/local/arm/2.95.3/arm-linux/bin/ld:warning:&nbsp;libpng12.so.0,&nbsp;needed&nbsp;by&nbsp;/home/&nbsp;qtopia-arm-home/nfs/qtopia-free-2.2.0/qtopia/lib/libqte.so,not&nbsp;found&nbsp;(try&nbsp;using&nbsp;-rpath&nbsp;or-rpath-link)<br />/usr/local/arm/2.95.3/arm-linux/bin/ld:warning:&nbsp;libz.so.1,&nbsp;needed&nbsp;by&nbsp;/home/qtop&nbsp;ia-arm-home/nfs/qtopia-free-2.2.0/qtopia/lib/libqte.so,not&nbsp;found&nbsp;(try&nbsp;using&nbsp;-rp&nbsp;ath&nbsp;or&nbsp;-rpath-link)<br />/home/qtopia-arm-home/nfs/qtopia-free-2.2.0/qtopia/lib/libqte.so:undefined&nbsp;refe&nbsp;rence&nbsp;to&nbsp;`uncompress'<br />解决办法:<br />是编译没带库编译了qmake&nbsp;工具没生成<br />我是修改文件<br />/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf<br />将此行<br />QMAKE_LIBS_QT&nbsp;=&nbsp;-lqte<br />修改为<br />QMAKE_LIBS_QT&nbsp;=&nbsp;-lqte&nbsp;-lpng&nbsp;-lts&nbsp;-lz&nbsp;-luuid-ljpeg<br />参考<br />http://www.qtopia.org.cn/phpBB2/viewtopic.php?p=2560&sid=069a3e6e76d5327ef97f9ea1a22ff481<br /><br />错误六:<br />../../libraries/qtopia/qdawg.cpp:294:&nbsp;错误:有多余的限定&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;‘QDawgPrivate::’&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在成员&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;‘QDawgPrivate’&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上<br />make[6]:&nbsp;***&nbsp;[.obj/release-shared/qdawg.o]&nbsp;错误&nbsp;1<br />make[5]:&nbsp;***&nbsp;[all]&nbsp;错误&nbsp;2<br />make[4]:&nbsp;***&nbsp;[sub-tools-qdawggen]&nbsp;错误&nbsp;2<br />make[3]:&nbsp;***&nbsp;[sub-src-components_pro]&nbsp;错误&nbsp;2<br />make[2]:&nbsp;***&nbsp;[all]&nbsp;错误&nbsp;2<br />make[1]:&nbsp;***&nbsp;[all]&nbsp;错误&nbsp;2<br />解决办法:<br />vi&nbsp;/home/qtopia-arm-home/nfs/qtopia-free-2.2.0/qtopia/src/libraries/qtopia/qdawg.cpp<br />//&nbsp;QDawgPrivate::~QDawgPrivate()<br />&nbsp;&nbsp;&nbsp;~QDawgPrivate()<br /><br />终于编译成功啦!!!庆贺一下,请我吃饭,哈哈!<br /><br />(5)将编译成功后的库拷贝到前面指定的安装目录:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;makeinstall<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;命令结束后可以在$MYHOME/nfs/qtopia中看到qtopia的文件系统。<br /><br />4.&nbsp;收尾:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别忘了,还有一些库在$MYHOME/arm/lib中,拷贝这些库到qtopia的库中:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp$MYHOME/arm/lib/*&nbsp;$MYHOME/nfs/qtopia/lib/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果是用了tslib,还需要拷贝触摸屏校准/测试程序以及相关的库文件:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mkdir$MYHOME/nfs/qtopia/bin/tests&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mkdir$MYHOME/nfs/qtopia/lib/ts<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp&nbsp;$MYHOME/arm/tslib/tests/.libs/ts_*$MYHOME/nfs/qtopia/bin/tests<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp$MYHOME/arm/tslib/src/.libs/libts-0.0.so.0*&nbsp;$MYHOME/nfs/qtopia/lib<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp$MYHOME/arm/tslib/src/.libs/libts.so&nbsp;$MYHOME/nfs/qtopia/lib<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp$MYHOME/arm/tslib/plugins/.libs/*.so&nbsp;$MYHOME/nfs/qtopia/lib/ts/<br /><br />5.&nbsp;运行:<br />在你的板子上设置运行环境变量<br />exportPATH=/bin:/sbin:/usr/bin:/usr/sbin:/qt/bin<br />exportLD_LIBRARY_PATH=/lib:/usr/lib:/qt/lib<br />export&nbsp;QWS_KEYBOARD=TTY<br />export&nbsp;LANG=&quot;zh&quot;_CN<br />export&nbsp;TERMINFO_DIRS=/usr/etc<br /><br />export&nbsp;ROOT=&quot;/root&quot;<br />export&nbsp;QTDIR=&quot;/qt&quot;<br />export&nbsp;QPEDIR=&quot;/qt&quot;<br />exportQWS_MOUSE_PROTO=TPanel:/dev/h3600_tsraw<br /><br /><br />如果是用了tslib,还需要设置以下环境变量:<br />export&nbsp;TSLIB_TSDEVICE=/dev/h3600_tsraw<br />export&nbsp;TSLIB_CONSOLEDEVICE=/dev/vc/<br />export&nbsp;TSLIB_FBDEVICE=/dev/fb0<br />export&nbsp;TSLIB_CONFFILE=/qt/etc/ts.conf<br />export&nbsp;TSLIB_PLUGINDIR=$QTDIR/lib/ts/<br />export&nbsp;TSLIB_TSEVENTTYPE=&quot;H3600&quot;<br /><br />校准屏幕(5点校准)<br />如果是用tslib,启动下面的程序校准触摸屏:<br />通过nfs将/home/qtopia-arm-home/nfs挂载到你的板子,然后在你的板子上执行:<br />cd到你的qtopia/bin/tests<br />./ts_calibrate&nbsp;<br />运行<br />cd到你的qtopia/bin<br />./qpe<br /><br />6.&nbsp;说明:文中的牵扯路径大致如下:<br />MYHOME=/home/qtopia-arm-home<br />PATH=$PATH:/usr/local/arm/2.95.3/bin<br /><br />$MYHOME--&gt<br />arm--&gt<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lib<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e2fs<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jpeg&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libpng<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tslib<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zlib<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nfs--&gt<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qtopia<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qtopia-free-2.2.0--&gt<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dqt<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qtopia<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qt2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />7.&nbsp;参考文档:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Qtopia&nbsp;PDA&nbsp;2.2.2<br />
auzxj 发表于 2009-7-4 13:31 | 显示全部楼层

mark

  
lpc2410 发表于 2009-7-6 13:18 | 显示全部楼层

不好弄

  
chun1chun 发表于 2009-7-7 13:22 | 显示全部楼层

真的不错

  
tmake 发表于 2009-7-9 13:31 | 显示全部楼层

这玩意儿太难搞了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

125

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

25

主题

125

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部