Ubuntu:16.04.3 64位 Qt:windows:5.6.2 linux:5.7.0
交叉编译器:4.8.3-20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29) Qt源码:arm-qte-5.7.0
以上安装包资源下载链接:链接:http://pan.baidu.com/s/1o8cDwvg 密码:f06l(链接失效请联系QQ:1003506507)
-----------------------------------------------------------------------------------------------------------------------------------------------------------
说明:此次开发环境搭建的目的是在win下面编写代码并且完成所有的调试,然后放到linux下构建得到arm平台的文件,再将这个文件放到板子上运行;因此这里需要准备的环境有:windows上安装Qt(5.6.2),linux上安装Qt(5.7.0);
-----------------------------------------------------------------------------------------------------------------------------------------------------------
一、windows下安装Qt5.6.2
下载安装包:包下载链接见顶部;
进行傻瓜式安装即可(注意组件选项,通常默认就行,也可根据自己需求进行勾选);
二、Ubuntu安装
下载安装包:包下载链接见顶部;
建议在win下面独立分出来一个区,大小给个20-40G,将虚拟机装在这里,安装过程略过,百度类似教程也蛮多(注意内存不要分太多,尽量不要超过主机的一半);
安装完成之后进行一系列的配置,这里就说以下几点:
1.#sudo apt-get update //更新软件包
2.#sudo apt-get remove samba-common //卸载自带的samba
3.#sudo apt-get install samba //重新安装samba 安装完成后需要配置:可参考http://blog.csdn.net/u012907149/article/details/77970701
4.网络、自登录、语言......
三、Ubuntu下安装Qt5.7.0
下载安装包:包下载链接见顶部;
1.下载qt for linux (下载到本地windows目录下):
可以提前下载上述安装包,也可到Qt论坛下载,下载链接:http://mirrors.ustc.edu.cn/qtproject/archive/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7.0.run (链接来自 http://www.qtcn.org 论坛,论坛下载板块涵盖了所有的Qt版本,可以去看看)
2.复制到ubuntu下;刚刚的下载是下载到了windows下面,这里我们复制到ubuntu下,可以使用samba、共享文件夹、U盘等看自己了;
3.在ubuntu下进行安装Qt;记好自己弄过来的那个安装包目录,进到该目录,我的目录在/mnt/下,进去后./qt-opensource-linux-x64-5.7.0.run,就开始安装了;
4.选择安装位置:安装过程中会有对话框供我们选择安装位置,这里选好就行,我的是/opt/Qt5.7.0
5.安装组件选择,自己根据情况选择(安装过程百度有好多,自己记不太清了,有点不详细,这部分大家可以百度找找);
6.配置环境变量:安装完后大家会发现一个问题,就是要运行Qt 就要到的安装目录下去运行,其实这里我们可以这样做:
#sudo vi /etc/profile
在底部添加添加以下几行
export QTDIR=/opt/Qt5.7.0/Tools/QtCreator #安装目录
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
完后保存退出;执行
#source /etc/profile 这样之后我们就可以在终端输入命令来运行Qt;
# /opt/Qt5.7.0/Tools/QtCreator/bin/qtcreator (其实这里还有一种做法是创建快捷方式,这种方式嫌麻烦的话可以自己找找做做了,我偷懒了)
四、安装编译器(这里安装两个版本,09为了今后编译内核,14为了下一步编译Qt,装完后先把09注释掉)
下载压缩包:包下载链接见顶部;
将压缩包拷贝到linux下进行解压,这里拷到了/mnt/;
1.新建目录
#sudo mkdir /opt/arm
#sudo chmod 777 /opt/arm
#sudo cd /opt/arm
#sudo cp /mnt/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 ./
#sudo cp /mnt/arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 ./2.解压
#sudo tar jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
#sudo tar jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
3.配置环境
# vim /etc/profile
在底部添加以下几行
#编译器环境变量 注意修改后要执行 source /etc/profile #arm-2009q3 #export PATH=$PATH:/opt/arm/arm-2009q3/bin #这里先将09q3注释掉 #arm-2014.05 export PATH=$PATH:/opt/arm/arm-2014.05/bin
保存退出;
#source /etc/profile
完成后,输入arm,然后双击tab键,可以看到如下信息:
root@ubuntu:/# arm
arm2hpdl arm-none-linux-gnueabi-gcc-nm
arm-none-linux-gnueabi-addr2line arm-none-linux-gnueabi-gcc-ranlib
arm-none-linux-gnueabi-ar arm-none-linux-gnueabi-gcov
arm-none-linux-gnueabi-as arm-none-linux-gnueabi-gdb
arm-none-linux-gnueabi-c++ arm-none-linux-gnueabi-gprof
arm-none-linux-gnueabi-c++filt arm-none-linux-gnueabi-ld
arm-none-linux-gnueabi-cpp arm-none-linux-gnueabi-nm
arm-none-linux-gnueabi-cs arm-none-linux-gnueabi-objcopy
arm-none-linux-gnueabi-cs-daemon arm-none-linux-gnueabi-objdump
arm-none-linux-gnueabi-elfedit arm-none-linux-gnueabi-ranlib
arm-none-linux-gnueabi-g++ arm-none-linux-gnueabi-readelf
arm-none-linux-gnueabi-gcc arm-none-linux-gnueabi-size
arm-none-linux-gnueabi-gcc-4.8.3 arm-none-linux-gnueabi-strings
arm-none-linux-gnueabi-gcc-ar arm-none-linux-gnueabi-strip
root@ubuntu:/# arm
至此,交叉编译工具已经安装成功;
五、Qt源码编译
1.#mkdir linux
#chmod 777 linux
将qt-everywhere-opensource-src-5.7.0.tar.gz源码包弄到/mnt/linux/目录下;源码包下载链接见顶部;
(这里建议自己在其他地方新建一个目录,放到那个新目录下面,例如在/mnt/linux/)
#tar zxvf qt-everywhere-opensource-src-5.7.0.tar.gz (需要几分钟时间)
修改编译配置文件,在:qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 这个文件中做修改;
#vi /qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
(红色部分为要修改的地方)
01 #
02 # qmake configuration for building with arm-linux-gnueabi-g++
03 #
04
05 MAKEFILE_GENERATOR = UNIX
06 CONFIG += incremental
07 QMAKE_INCREMENTAL_STYLE = sublib
08
09 ###### 10 QT_QPA_DEFAULT_PLATFORM = linux #eglfs 11 QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a 12 QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a 13 ######
14
15 include(../common/linux.conf)
16 include(../common/gcc-base-unix.conf)
17 include(../common/g++-unix.conf)
18
19 # modifications to g++.conf
20 QMAKE_CC = arm-none-linux-gnueabi-gcc
21 QMAKE_CXX = arm-none-linux-gnueabi-g++
22 QMAKE_LINK = arm-none-linux-gnueabi-g++
23 QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
24
25 # modifications to linux.conf
26 QMAKE_AR = arm-none-linux-gnueabi-ar cqs
27 QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
28 QMAKE_NM = arm-none-linux-gnueabi-nm -P
29 QMAKE_STRIP = arm-none-linux-gnueabi-strip
30 load(qt_config)
保存退出;
回到源码目录下,执行:
./configure -prefix /opt/qt5.7.0 -release -opensource -make libs -xplatform linux-arm-gnueabi-g++ -optimized-qmake -pch -qt-libjpeg -qt-zlib -no-opengl -skip qt3d -skip qtcanvas3d -skip qtpurchasing -no-sse2 -no-openssl -no-nis -no-cups -no-glib -no-iconv -make examples -nomake tools -skip qtvirtualkeyboard
具体可参考:http://www.cnblogs.com/chenfulin5/p/5798764.html,也可以输入./configure --help查看,根据自己情况配置;
完后进行
#make(首次编译建议不要用make -j4)
#make install
在源码目录下创建脚本文件mktarget.sh,内容如下:
01#!/bin/bash
02
03 TARGET_DIR=$PWD
04 #cp font/DroidSansFallback.ttf /usr/local/arm/arm-2014.05/lib/fonts
05
06 cd /
07 list=`cat << EOF
08 opt/qt5.7.0/examples/widgets/widgets/wiggly/wiggly
09 opt/qt5.7.0/examples/positioning/logfilepositionsource/logfilepositionsource
10 opt/qt5.7.0/lib
11 opt/qt5.7.0/plugins
12 EOF
13 `
14 tar cfvz $TARGET_DIR/qte5.7.0-to-devboard.tgz $list
15 tar cfvz $TARGET_DIR/qte5.7.0-to-hostpc.tgz /opt/qt5.7.0
16
保存退出,./mktarget.sh
//这一步将会从编译好的目标文件目录中提取出必要的 qte-5.7.0 库文件和可执行二进制示例,并打包为qte5.7.0-to-devboard.tgz 和 qte5.7.0-to-hoststpc.tgz
其中 qte5.7.0-to-devboard.tgz 是用于部署在开发板上的版本,为了节省空间该版本删除了开发工具只保留运行程序所需的库文件,而 qte5.7.0-to-hostpc.tgz 则是用于安装在 PC上,用来开发和编译程序的版本,带有 qmake 等 Qt 工具以及编译所需的头文件等,可用于配置 Qt Creator 开发工具。
安装 qte5.7.0 到开发板,方法如下:
把qte5.7.0-to-devboard.tgz 在开发板的根目录下解压,假设你将压缩包放在 SD 卡根目录,则用如下命令即可:
# rm –rf opt/qt5.7.0/
# tar xvzf/sdcard/qte5.7.0-to-devboard.tgz
安装 qte-5.7.0 到 PC 上的方法如下:
把 qte5.7.0-to-hostpc.tgz 在 PC 的根目录下解压即可,如下命令
# tar xvzf qte5.7.0-to-hostpc.tgz
qte-5.7.0 会安装到目录/opt/qt5.7.0/ 下,它里面包含了运行所需要的所有库文件和可执行程序。
六、linux下Qt配置
打开qt creator
#/opt/Qt5.7.0/Tools/QtCreator/bin/qtcreator
在Qt-Creator菜单栏中操作:工具->选项->构建和运行;
进行如下操作:
选择手动设置,选择添加........依次完成如图配置;
完成后,在linux下新建工程时会提示选择编译器,看到如下图就说明成功了;
最后,在win下面通过桌面版进行调试开发,最终在linux下面构建ARM平台的文件(在linux下新建的时候会提示你选择编译器),考到开发板运行(板子要有库文件);
./XXX -qws
参考链接:http://www.cnblogs.com/CZM-/p/6659156.html