QT4.8.5移植到HI3516平台平台

环境:UBUNTU 10.04LTS, GCC 4.4.1, uClibc, QT SDK 4.8.5

  1. 下载qt-everywhere-opensource-src-4.8.5.tar.gz, PC端和ARM端都是同一个文件,下载地址:http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz

 

2、先编译PC端的,

1) 解压出来,重命名文件夹为: x86-qt-everywhere-opensource-src-4.8.5

2) 进入到x86-qt-everywhere-opensource-src-4.8.5目录

3) 配置:  ./configure

出现错误:

Basic XLib functionality test failed!

 You might need to modify the include and library search paths by editing

 QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/cjh/qt/qt-everywhere-opensource-src-4.8.5/mkspecs/linux-g++.

安装libxtst-dev:apt-get install libxtst-dev

./configure

出现:Warning: -no-xrender will disable the QtWebkit module.

安装libxrender-dev:apt-get install libxrender-dev

./ configure

如需重新配置,To reconfigure, run 'make confclean' and 'configure'.

4) make,没出现什么问题,花了二三个小时完成。

5) sudo make install 默认装在:/usr/local/Trolltech/Qt-4.8.5

3、编译ARM端

1) 安装交叉编译器

    安装海思平台交叉编译器arm-hisiv100-linux

安装目录是/opt/hisi-linux/x86-arm/arm-hisiv100-linux

在/etc/profile文件中添加PATH

Export PATH="/opt/hisi-linux/x86-arm/arm-hisiv100-linux/target/bin:$PATH"  

确认编译器安装成功,arm-hisiv100-linux-gcc -v

    2) 从压缩包再解压出来,重命名文件夹为: arm-qt-everywhere-opensource-src-4.8.5。虽然与PC端是相同的代码,按理说在同一个文件夹用不同的配置也可以,但为了避免问题,还是另建一份新的档案。而且也可以同时make,节省时间。

3) 进入到arm-qt-everywhere-opensource-src-4.8.5目录

4) 设置交叉编译工具链,修改文件qmake.conf arm-qt-everywhere-opensource-src-4.8.5/mkspecs/linux-arm-gnueabi-g++ /qmake.conf,修改内容如下:  

# modifications to g++.conf

QMAKE_CC = arm-hisiv100-linux-gcc

QMAKE_CXX = arm-hisiv100-linux-g++

QMAKE_LINK = arm-hisiv100-linux-g++

QMAKE_LINK_SHLIB = arm-hisiv100-linux-g++

# modifications to linux.conf

QMAKE_AR = arm-hisiv100-linux-ar cqs

QMAKE_OBJCOPY = arm-hisiv100-linux-objcopy

QMAKE_STRIP = arm-hisiv100-linux-strip

    5) 配置:

./configure -opensource -embedded arm -host-little-endian -little-endian -static -no-cups -no-3dnow -no-script -no-webkit -no-javascript-jit -no-qt3support -nomake examples -nomake docs -xplatform /qws/mkspecs/linux-arm-gnueabi-g++

6) make ,耗时20-30分钟

出现错误:

qthread_unix.cpp:  undefined reference to `__tls_get_addr

修改src/corelib/thread目录下的qthread_unix.cpp文件, 关闭HAVE_TLS宏,再编译。

出现错误 

../3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp:662: error: 'pthread_getattr_np' was not declared in this scope

  pthread_getattr_np在uClibc中没有实现,不使用javascript, 暂时屏蔽了,如果用到javascript会有问题。

7) sudo make install, 安装在/usr/local/Trolltech/QtEmbedded-4.8.5-arm。如果需要安装在其他目录,./configure -prefix path指定

8) 修改环境变量,在~/.bashrc中添加以下语句

export ARMQTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm

export PATH=$ARMQTDIR/bin:$PATH

export LD_LIBRARY_PATH=$ARMQTDIR/lib

export QMAKESPEC=$ARMQTDIR /mkspecs/linux-arm-gnueabi-g++

重新加载~/.bashrc:

source ~/.bashrc

  检查是否成功:

      qmake -v

输出以下信息:

QMake version 2.01a

Using Qt version 4.8.5 in /usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib

9) 例子程序测试

cd /examples/dialogs/standarddialogs

/usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin/qmake -spec /usr/local/Trolltech/QtEmbedded-4.8.5-arm/mkspecs/linux-arm-gnueabi-g++/ -o Makefile standarddialogs.pro

make

arm-linux-strip standarddialogs

upx –qqq –v standarddialogs   //压缩

好了,standarddialogs可以放到目标板上去运行了。

4、安装Qt Creator

    qt-creator 2.8.1要求ubuntu 11.10 or later,所以装了2.7.2版本。

1) 运行安装程序 ./qt-creator-linux-x86-opensource-2.7.2.bin,按默认配置安装

2) 增加Compiler

指向交叉编译器的arm-hisiv100-linux-g++

QT4.8.5移植到HI3516平台

    3) 增加Qt versions,分别指向刚刚编译的二个平台的qmake

    4) 增加Kits

PC版本的

QT4.8.5移植到HI3516平台

ARM版本的

QT4.8.5移植到HI3516平台

猜你喜欢

转载自blog.csdn.net/linux_0416/article/details/85277843