基本上移植的方法没什么不同
除了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并解压缩
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) |
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 |
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参数
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
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 |
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 |
5 | printf "/033[9;0]" > /dev/tty0 |
15. 执行测试程式
1 | cd /usr/ local /Trolltech/QtEmbedded-4.6.3-generic/examples/layouts/borderlayout |
4 | cd /usr/ local /Trolltech/QtEmbedded-4.6.3-generic/examples/widgets/sliders |
16.执行webkit测试程式
1 | cd /usr/ local /Trolltech/QtEmbedded-4.5.1-generic/examples/webkit/formextractor |
以下为我的测试成果
好熟悉的图案
Webkit
Web Browser
请爱用稳定版的Toolchain并配合正确的BSP版本