Qt移植
Qt移植
pc和arm可使用相同的源码包,使用不同的配置即可
arm版本Qt移植
1.下载并解压源代码包
tar zxvf qt-everywhere-opensource-src-4.8.5.tar.gz
2.配置(可先用./configure --help查看可配置选项)
./configure -prefix /opt/qt-4.8.5-arm/ -shared -no-fast -no-largefile -no-exceptions -qt-sql-sqlite -qt3support -no-xmlpatterns -multimedia -no-svg -no-mmx -no-3dnow -no-sse -no-sse2 -qt-zlib -no-webkit -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples -nomake docs -nomake demo -no-optimized-qmake -no-nis -no-cups -no-iconv -no-dbus -no-separate-debug-info -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -no-freetype -depths 4,8,16,32 -qt-gfx-linuxfb -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-tty -no-glib -armfpa -no-mouse-qvfb -qt-mouse-pc -qt-mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib
注释:
-prefix /opt/qt-4.8.5-arm 为安装目录,编译完后拷贝到开发板
3.编译与安装
make
make install
4.复制/opt/qt-4.8.5-arm目录到开发板/opt/qt-4.8.5:
cp -a /opt/qt-4.8.5-arm /nfsroot/opt/
5.配置开发板环境变量:
sudo vi /nfsroot/etc/profile
添加如下内容:
export QTDIR=/opt/qt-4.8.5-arm
export QTDIRlib=/opt/qt-4.8.5-arm/lib
export LD_LIBRARY_PATH=$QTDIRlib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH
export QWS_MOUSE_PROTO=tslib:/dev/input/event3
export QWS_DISPLAY="LinuxFb:mmWidth480:mmHeight272:0"
export QT_QWS_FONTDIR=/opt/qt-4.8.5-arm/lib/fonts
export QTDIRlib=/opt/qt-4.8.5-arm/lib
export LD_LIBRARY_PATH=$QTDIRlib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH
export QWS_MOUSE_PROTO=tslib:/dev/input/event3
export QWS_DISPLAY="LinuxFb:mmWidth480:mmHeight272:0"
export QT_QWS_FONTDIR=/opt/qt-4.8.5-arm/lib/fonts
PC版本Qt
2.配置
./configure -prefix /opt/qt-4.8.5-x11
Qt Creator
1.下载并安装qtcreator
./qt-creator-opensource-linux-x86-3.0.1.run
2.配置qtcreator
*打开qtcreator,在菜单栏选择Tools->Options,选择Build & Run选项卡,选择Compiler选项卡,选择GCC(x86 32bit in /usr/bin),点右边的Clone按钮,复制一个选项作为交叉编译器的选项,修改Clone出来的选项,修改如下:
Name:GCC(arm 32bit)
Compiler path:/opt/4.4.1/bin/arm-linux-g++(根据具体路径设置)
ABI:arm-linux
*选择Debugger选项卡,选择System GDB at /usr/bin/gdb,点Clone,修改Clone出来的选项,修改如下:
Name:GDB (arm 32bit)
Path: /opt/4.4.1/bin/arm-linux-gdb(根据具体路径设置)
*选择Qt Version选项卡,点Add,添加/opt/qt-4.8.5-arm/bin/qmake
*选择Kits选项卡,选择Destop,点Clone,修改Clone出来的选项,修改如下:
Name: Arm
Device type:Generic Linux Device
Device:
Sysroot:
Compiler: GCC(arm 32bit)
Debugger: GDB (arm 32bit)
Qt version:Qt4.8.5 (qt-4.8.5-arm)
(会有No device警告,不鸟它)
PC端编译器按以上过程配置
3.测试
打开Qt,新建工程,输入名字和路径
在Kit Selection时,把两个Kit都选上,
下一步,下一步,完成
随便画个窗口
点击左下角Debug按钮,切换编译器,想怎么切,就怎么切
在工程目录的Debug目录下,把可执行文件,复制到开发板运行即可
PC端直接点运行
./Test -qws(记得加上-qws)
移植完成:^.^
问题:
1. error while loading shared libraries: libstdc++.so.6: cannot open shared object file
解决:到交叉编译器的库里找到相应的库,复制到开发板
cp -a /opt/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so /nfsroot/lib/
cp -a /opt/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6 /nfsroot/lib/
cp -a /opt/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12 /nfsroot/lib/