Linux下QT开发平台的安装和交叉编译移植
1.安装arm-none-linux-gcc交叉编译器
(1)打开虚拟机,拖动arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2文件到虚拟机里面,右键解压到桌面或者打开终端输入解压命令“tar zvxf 压缩包全名”解压,输入 sudo su 切换为超级用户后,通过输入cp -r arm-2014.05 /opt,把解压文件移动到opt/arm-2014.05/目录下,该目录的bin目录下有很多工具,其中就有arm-none-linux-gcc,想要在任何目录下使用这个工具,就得对环境变量进行配置,具体配置方法如下:
修改/etc/profile文件:
# vim /etc/profile
增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH=$PATH:/opt/arm-2014.05/bin
蓝色部分是你的工具路径,根据各人的情况而定。
接下让修改的环境变量生效而不用重启就的输入以下命令
$ source /etc/profile
检查是否将路径加入到PATH:
# echo $PATH
显示的内容中有/usr/local/FriendlyARM/toolschain/4.4.3/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。
测试是否安装成功
# arm-none-linux-gcc -v
出来版本信息代表成功
(!!注意:如果是64位系统,编译文件时提示出错: No such file object file,输入以下命令:sudo apt-get install lib32stdc++6安装32位的包即可)
2.安装Qt
把Qt的安装文件qt-opensource-linux-x64-5.9.3.run拖到虚拟机的桌面,*.run文件是可以直接在虚拟机中双击安装运行的,双击运行,弹出对话框点击Next。
也可以注册个QT账户,我直接跳过了,后面的安装都是选择路径一直下一步就完成了,完成后的界面如下:
这个是Qt Creator,包含了Qt库文件,拥有更加人性化的界面,桌面上没有图标,在电脑上的左下角点击搜索按钮输入一个Q就可以出来。
3.交叉编译QT源码
下载好了qt-everywhere-opensource-src-5.7.0.tar.gz拖到虚拟机中的/home/pier/now下,输入tar -vxf qt-everywhere-opensource-src-5.7.0.tar.gz解压Qt源码的压缩包文件,然后输入cd qt-everywhere-opensource-src-5.7.0进入该文件夹目录,修改交叉编译架构用到的信息:
输入 gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
出来如下的文本信息,修改下方的红色部分文件路径为自己的对应工具路径,并且增加蓝色的代码三行在下方的位置中,其中的o2是字母o而不是数字0
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS_RELEASE += -o2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -o2 -march=armv7-a
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
可参考电脑修改后的截图如下:
创建一个脚本文件,用于生成Makefile,执行命令
gedit autoConfigure.sh
内容如下:
#!/bin/sh
./configure \
-v \
-prefix /opt/qt-570 \
-release \
-opensource \
-no-accessibility \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-zlib \
-tslib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-I/home/pier/yun/tslib/include -L/home/pier/yun/tslib/lib
红色部分是需要修改的地方,前一个是你想交叉编译到哪个文件夹下,后一个是需要填写你交叉编译的tslib文件夹路径,翻看之前的tslib脚本命令,知道是/opt/qt-570。
执行命令:
chmod 777 autoConfigure.sh
./autoConfigure.sh
弹出如下对话框,输入yes或者y
等待一段时间过后,出来如下窗口,提示你输入make,然后执行make install,这里选择先输入make -j4(表示四线程,速度更快,不到1小时)
然后等待直到完成make命令,接下来输入make install,开始交叉编译qt到/opt/qt-570目录下。
可能会出来如下提示错误,不用担心,其实并不影响,已经交叉编译了触摸屏tslib,虚拟键盘什么的不需要。
进入到/opt目录下看看有没有qt-570目录生成,有的话代表已经成功了。
接下来只需要配置好Qtcreator就可以开发了。打开Qtcreator,点击工具/选项/构建与运行/编译器,配置如下
到此,QT配置完成,可以写程序开发了。