您的位置:首页 > 编程语言 > Qt开发

Qt 4.6.3(包含Webkit)移植在Andestech platform

2010-09-02 14:23 197 查看

Qt 4.6.3(包含Webkit)移植在Andestech platform

基本上移植的方法没什么不同
除了alway inline 不需作修改
改以直接在configure的时候定义 ALWAYS_INLINE
 -D ALWAYS_INLINE=inline

我把需要的档案整理在SourceForge的Andes QT Port Project
http://sourceforge.net/downloads/andesqt/

SourceForge比较大方没有单一档案大小100MB的限制:-) 比起Google Code

ag101_image_with_unalign_access是有开启unalign access的Kernel但我没有实际测试过,手边只有Leopard

bashrc.nds32le-linux-V0这个是我的source设定档

linux-2.6-bsp20.tgz这个为稳定版本的Andestech BSP若需要重新编译Kernel请用此版本

nds32le-linux-glibc-V0-Qt45.tgz这个为稳定版本的Andestech Toolchain

xc5_image_with_unalign_access是有开启unalign access的Kernel我有实际测试过

你下载后依照以下步骤

1.请修改为你环境变数的相关参数

1
source
 
bashrc.nds32le-linux-V0
2.下载Qt Embedded并解压缩

1
wget http://get.qt.nokia.com/qt/
source
/qt-everywhere-opensource-src-4.6.3.
tar
.gz
2
tar
 
zxvf qt-everywhere-opensource-src-4.6.3.
tar
.gz
3. 进入目录

1
cd
 
qt-everywhere-opensource-src-4.6.3
4.修改程式,使用"linux-generic-g++".

1
vim mkspecs/qws/linux-generic-g++/qmake.conf
加入

01
include(../../common/g++.conf)
02
include(../../common/linux.conf)
03
include(../../common/qws.conf)
04
 
05
# modifications to g++.conf
06
QMAKE_CC                = nds32le-linux-gcc -EL -G0 -Wa,-mno-small-data -lts
07
QMAKE_CXX               = nds32le-linux-g++ -EL -G0 -Wa,-mno-small-data -lts
08
QMAKE_LINK              = nds32le-linux-g++ -EL -G0 -Wa,-mno-small-data -lts
09
QMAKE_LINK_SHLIB        = nds32le-linux-g++ -EL -G0 -Wa,-mno-small-data -lts
10
 
11
# modifications to linux.conf
12
QMAKE_AR                = nds32le-linux-ar cqs
13
QMAKE_OBJCOPY           = nds32le-linux-objcopy
14
QMAKE_STRIP             = nds32le-linux-strip
5. 修改程式

1
vim /src/corelib/io/qfilesystemwatcher_inotify.cpp
增加Andestech参数

1
//# error "This architecture is not supported. Please talk to qt-bugs@trolltech.com"
2
# define __NR_inotify_init      316
3
# define __NR_inotify_add_watch 317
4
# define __NR_inotify_rm_watch  318
5
# define __NR_inotify_init1     360
6. 不需修改always_inline
 src/3rdparty/webkit/JavaScriptCore/wtf/AlwaysInline.h

7.输入(请注意最后面有增加  -D ALWAYS_INLINE=inline )

1
./configure -embedded generic -qt-zlib -qt-libpng -qt-gif -qt-libtiff -qt-libmng -qt-libjpeg -no-openssl -little-endian -webkit -svg -no-xmlpatterns -no-phonon -backend -no-accessibility -no-glib -no-freetype -no-dbus -no-pch -qt-mouse-tslib -I/home/liu/nds32/include -L/home/liu/nds32/lib -
v
 
-D ALWAYS_INLINE=inline
8. 输入
o

9. 输入
yes

10. 输入

make

11. 输入

sudo make install

12.复制至SD卡或使用NFS 

1
udhcpc
2
mount
 
-t nfs 192.168.1.99:/home/liu/nds32/ /tmp/ -o proto=tcp -o nolock
  

13. 设定变数

 

01
export
 
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/tmp/lib
02
export
 
TSLIB_TSDEVICE=/dev/input/event0
03
export
 
TSLIB_CALIBFILE=/tmp/etc/pointercal
04
export
 
TSLIB_CONFFILE=/tmp/etc/ts.conf
05
export
 
TSLIB_PLUGINDIR=/tmp/lib/ts
06
export
 
TSLIB_FBDEVICE=/dev/fb0
07
 
08
export
 
QTDIR=/usr/
local
/Trolltech/QtEmbedded-4.6.3-generic/
09
export
 
QWS_KEYBOARD=None
10
export
 
QWS_MOUSE_PROTO=tslib
11
export
 
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
 

14. 增加目录

 

1
mkdir
 
-p /usr/
local
/Trolltech/
2
mount
 
-t nfs 192.168.1.99:/usr/
local
/Trolltech/ /usr/
local
/Trolltech/ -o proto=tcp -o nolock
3
ln
 
-s /tmp/etc/pointercal /etc/pointercal
4
 
5
printf
 
"/033[9;0]"
 
> /dev/tty0
 

15. 执行测试程式

 

1
cd
 
/usr/
local
/Trolltech/QtEmbedded-4.6.3-generic/examples/layouts/borderlayout
2
./borderlayout -qws
3
#如果没有unaligned access 以下程式会Core dump
4
cd
 
/usr/
local
/Trolltech/QtEmbedded-4.6.3-generic/examples/widgets/sliders
5
./sliders -qws
 

16.执行webkit测试程式

 

1
cd
 
/usr/
local
/Trolltech/QtEmbedded-4.5.1-generic/examples/webkit/formextractor
2
./formExtractor -qws
 

以下为我的测试成果


 

 


 

 


 

 


 

好熟悉的图案


 


 

Webkit


 

 


 

 


 

Web Browser


 

 


 

 


 

请爱用稳定版的Toolchain并配合正确的BSP版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息