, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配

1. 交叉编译工具链arm-none-linux-gnueabi-的安装

2. Qt4.8.1交叉编译安装和移植

3. Qt4.8.4桌面版编译安装

4. QTcreator2.5.2安装和配置

2. Qt4.8.1交叉编译安装和移植

这部分遇到很多问题,反复修改了很多配置,如下面列出的几篇。鉴于过程曲折,为避免以后再次陷入曲折过程,所以整理一下。

交叉编译qt4.8.4 for ARM[交叉编译qt4.8.4 for ARM]遇到到问题QT4.8.1移植到ARM目标板

首先,我的基本环境是:

ubuntu12.04 LTS , 要交叉编译的Qt版本是Qt4.8.1。

所需工具:

  交叉编译工具:前一篇已经介绍过,是zlg提供的交叉编译工具。

  qt4.8.4源码包:qt-everywhere-opensource-src-4.8.1.tar.gz

编译:

1. 解压qt4.8.1源码包:

tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz

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

# modifications to g++.confQMAKE_CC = arm-none-linux-gnueabi-gccQMAKE_CXX = arm-none-linux-gnueabi-g++QMAKE_LINK = arm-none-linux-gnueabi-g++QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++

# modifications to linux.confQMAKE_AR = arm-none-linux-gnueabi-ar cqsQMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopyQMAKE_STRIP = arm-none-linux-gnueabi-strip

3. 生成Makefile:

./configure -prefix /usr/local/qt-4.8.1-for-arm -embedded arm -host-little-endian -little-endian -no-cups -no-3dnow -nomake examples -nomake demos -nomake docs -xplatform /qws/linux-arm-gnueabi-g++

执行结果如下:

……

Qt is now configured for building ,just run ‘make’ Once everything is built , you must run ‘make install’ Qt will be installed into /usr/local/qt-4.8.1-for-armTo reconfigure ,run ‘make confclean’ and ‘configure’

4. 编译:

make  #此过程大概需要两个多小时make install

5. 修改环境变量

在~/.bashrc中添加以下语句

export ARMQTDIR=/usr/local/qt-4.8.1-for-armexport PATH=$ARMQTDIR/bin:$PATHexport LD_LIBRARY_PATH=$ARMQTDIR/libexport QMAKESPEC=/usr/local/qt-4.8.1-for-arm/mkspecs/qws/linux-arm-gnueabi-g++

重新加载~/.bashrc:

source ~/.bashrc

6. 检查是否成功:

qmake -vQMake version 2.01aUsing Qt version 4.8.1 in /usr/local/qt-4.8.1-for-arm/libwhich qmake/usr/local/qt-4.8.1-for-arm/bin/qmake

注:执行./configure 的参数标红部分的解释:

(1)如果没有 -little-endian, 执行上面的命令时,会得到提示:

The target system byte order could not be detected!Turn on verbose messaging (-v) to see the final report.You can use the -little-endian or -big-endian switch to./configure to continue.

(2)如果是-xplatform /qws/linux-arm-g++,则在执行make时,会报错:

make[1]: arm-linux-g++:命令未找到

make[1]: *** [.obj/release-shared-emb-arm/qabstractanimation.o] 错误 127make[1]:正在离开目录 `/home/tangys/qt-everywhere-opensource-src-4.8.1/src/corelib’make: *** [sub-corelib-make_default-ordered] 错误 2

解决办法:-xplatform /qws/linux-arm-g++ 改为 -xplatform /qws/linux-arm-gnueabi-g++

然后: make confclean ,

再重新执行:

./configure -prefix /usr/local/qt-4.8.1-for-arm -embedded arm -host-little-endian-little-endian -no-cups -no-3dnow -nomake examples -nomake demos -nomake docs -xplatform /qws/linux-arm-gnueabi-g++

7. 移植到ARM目标板上

7.1 交叉编译完成之后,还要将交叉编译好的qt4.8.1-for-arm移植到目标板:进入/usr/local/qt4.8.1-for-arm,对嵌入式qt进行打包,复制到目标板的相同目录下,可以通过minicom进行。

(参考:)

7.2 在主机上交叉编译一个最简单到hello目标程序,通过nfs方式,,在目标板上执行,出现错误:

root@freescale /mnt/nfs/hellow$ ./hellowQFontDatabase::loadFromCache: Font path doesn’t match. Found /usr/lib/fonts in database, expected/usr/local/qt-4.8.1-for-arm/lib/fontsAborted

实际上这两个路径都存在,而且内容也一样。

解决办法:参考

目标板终端执行env或export查看环境配置,在/etc/profile中添加下面一行,将QT_QWS_FONTDIR环境变量export成前面一个路径,

export QT_QWS_FONTDIR=/usr/lib/fonts保存之后,执行

source /etc/profile

问题解决。

版权声明:本文为博主原创文章,未经博主允许不得转载。

你是自由的,不仅是身体上的自由,

, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配

相关文章:

你感兴趣的文章:

标签云: