Ubuntu 搭建开发环境(QT+交叉编译)【嵌入式环境】

时间:2021-01-18 20:10:09

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

在底部添加添加以下几行

 #Qt环境变量
 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