qt4.7能在硬件平台A33中正常运行,并且应用程序开发调试在vs IDE进行,在vs调试ok后,download到板中可以立即运,利用vs开发界面友好,方便调试等特点,提升开发效率
相关材料:
两台电脑,ubuntu主机尽可能用性能好点的主机, unbuntu 系统,我是装在真机中,在开发过程中,在win7用 ssh登陆到ubuntu主机
主要软件清单:
ubuntu软件:
1.ubuntu-14.04-desktop-amd64.iso
2.qt-everywhere-opensource-src-4.7.3.tar.gz
3.gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 直接在ubuntu中apt-get install
4.arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
下载地址:http://www.bubuko.com/infodetail-667810.html
windows软件
1.VS2010UltimTrialCHS.iso
vs2010 开发ide
2.qt-opensource-windows-x86-vs2010-4.8.6.exe
windowns开发环境中的qt 工程代码
3.qt-vs-addin-1.2.2-opensource.exe
qt在vs2010中的插件
4.Tera Term4.92. 在windows中登陆ubuntu, 同时也支持板子串口控制台
步骤(ubuntu端 和开发板端):
1.安装tslib1.4,
虽然我的硬件中没有触摸屏,但是仍然安装此库;
宿主配置
确保已安装 autoconf、automake 和 libtool。如果没有安装,或者不确定,可输入下列命
令进行安装:
$ sudo apt-get install autoconf
$ sudo apt-get install automake
$ sudo apt-get install libtool
进入解压的目录,执行如下命令:
$ cd tslib
$ ./autogen.sh
$ ./configure --prefix=/home/vmuser/nfs_shared/tslib --host=arm-none-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes
--prefix 指定安装路径,用户可以自行指定 tslib 的安装目录。
--host 指定交叉编译器,如果交叉编译器是 arm-none-linux-guneabi-gcc,则指定arm-none-linux-guneabi。
make
make install
设置开发板环境
通过串口软件(如本文使用的 Tera Term),打开开发板的环境变量文件/etc/profile。
# sudo vi /etc/profile
在末尾添加如下内容:
export TSLIB_ROOT=/usr/local/tslib /* 指定 tslib 目录路径 */
export TSLIB_TSDEVICE=/dev/input/event0 /* 指定触摸屏设备 */
export TSLIB_CALIBFILE=/etc/pointercal /* 指定校准文件的存放位置*/
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf /* 指定 tslib 配置文件的路径*/
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts /* 指定 tslib 插件文件的路径*/
export TSLIB_FBDEVICE=/dev/fb0 /* 指定帧缓冲设备 */
export QWS_MOUSE_PROTO=/dev/input/event0 /* 指定鼠标设备 */
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib /* 添加 tslib 库 */
其中 TSLIB_ROOT 更改为自己实际存放的 tslib 的绝对路径。
TSLIB_TSDEVICE和QWS_MOUSE_PROTO这两项需要查看自己的开发板触摸屏设备对应/dev/input/下的文件。
2.编译qt4.7.3
文件末尾添加如下两行:注意安装路径,我的安装路径是/opt/Trolltech
QMAKE_INCDIR = /opt/Trolltech /tslib/include
QMAKE_LIBDIR = /opt/Trolltech /tslib/lib
./configure \
-prefix /opt/Trolltech \
-opensource -confirm-license -release -embedded arm \
-xplatform qws/linux-arm-gnueabi-g++ -no-qt3support \
-depths 16,18,24,32 -no-qvfb -no-svg \
-fast \
-optimized-qmake \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-qt-mouse-linuxinput \
-little-endian -host-little-endian \
-no-webkit \
-declarative \
-no-qt3support \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-qvfb \
-no-phonon \
-no-nis \
-no-cups \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-no-pch \
-D QT_NO_QWS_CURSOR \
-D QT_QWS_CLIENTBLIT \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib
运行 ./autoconfig.h
配置完成后:
make
时间比较久,我的配置文件中去掉了webkit,所以编译时间差不多一个小时,当然,我的宿主机配置比较差
make install
接下来就要移植到开发板上。
需要将安装目录下的 lib 和 plugins 移植到 ARM 开发板上,本例安装在/opt/Trolltech,所以在开发板上执行如下命令:
# mkdir /usr/local/qt-4.7.3-arm
通过 NFS,将 lib 和 plugins 下载到开发板上。在开发板上执行的命令如下:
# mount -t nfs 192.168.1.203:/opt/Trolltech/ /tmp -o nolock
# cp -r /tmp/lib /usr/local/qt-4.7.3-arm/
# cp -r /tmp/plugins /usr/local/qt-4.7.3-arm
设置相应的环境变量,在开发板上执行如下命令:
# vi /etc/profile
然后在文件末尾追加如下内容:
export QTDIR=/usr/local/qt-4.7.3-arm
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QTDIR/plugins /* 指定 Qt 插件路径 */
export QT_QWS_FONTDIR=$QTDIR/lib/fonts /* 指定 Qt 字体路径 */
(Windows端):
1.安装vs2010
2.安装qt-opensource-windows-x86-vs2010-4.8.6.exe
3.qt-vs-addin-1.2.2-opensource.exe
安装完成后,启动vs2010:
Qt5->Open Qt Project File(.pro)
去下面目录中选择
C:\Qt\4.8.6\examples\effects
转换完成后,去对应的目录下面选择.sln文件打开,
编译完成后,运行效果:
将此工程下面的所有*.cpp和*.h文件拷贝到ubuntu宿主机中:用qmake-arm生成运行文件:注意,此处的qmake-arm是个别名,指向的是在ubunt中的安装的qt-4.7-arm版
在~/.bashrc中:
alias qmake-arm=/opt/Trolltech/bin/qmake
进入到源码目录
qmake-arm -project
qmake-arm
make
编译无错后,输出:
利用nfs,在控制台上,运行./Qt,硬件平台效果,7寸液晶屏,1024*600分辨率.
磕磕碰碰,开发环境总算是搭建起来,感谢网络中的热心人。
碰到的问题:
1.
QFontDatabase::loadFromCache: Font path doesn't match。后面跟着便是两个路径。解决方案就是对比两个路径的不同,终端执行env查看环境配置,将QT_QWS_FONTDIR环境变量export成前面显示的base font路径。OK,问题解决。
add at 20161217
1.when building the example at QT dir appeare can not find *.dll.just add the installed path of QT to environment PATH
2.set the environment QTDIR = C:\Qt\4.8.6