Ubuntu下Qt5.6.2开发环境搭建
来源:互联网 发布:今天公布的经济数据 编辑:程序博客网 时间:2024/06/05 16:39
目录
- 目录
- 前言
- Qt下载地址
- Qt的Ubuntu版本安装过程
- Qt的ODROID版本交叉编译工程
- Qt编译选项解析
- 其他
- 总结
前言
因为开发需要用到Qt,本来想用Qt4,但是想想永远接触的是老的东西,将永远跟不上别人的脚步,所以直接从Qt5.6.2开始搭建整个开发环境。本来想用qt-opensource-linux-x86-5.5.1.run进行搭建的,但是bug很多,比较懒,直接用qt-opensource-linux-x64-5.6.2.run进行搭建。
Qt下载地址
Qt的下载地址老是忘记,特此记录下,下次就不需要满世界的搜网址了,博客本身也就是资源搜集器,都是为了提高效率!
Qt下载地址
Qt的Ubuntu版本安装过程
- qt-opensource-linux-x64-5.6.2.run
这个版本的安装直接Next
就行。
Qt的ODROID版本交叉编译工程
- 下载qt-everywhere-opensource-src-5.6.2.tar.gz,并解压
tar -xvf qt-everywhere-opensource-src-5.6.2.tar.gz
- 修改qmake.conf
cd qt-everywhere-opensource-src-5.6.2cp qtbase/mkspecs/linux-arm-gnueabi-g++ qtbase/mkspecs/linux-arm-gnueabihf-g++vi linux-arm-gnueabihf-g++/qmake.conf
修改如下:
MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # add by simon QT_QPA_DEFAULT_PLATFORM = linux #eglfs QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a # modifications to g++.conf QMAKE_CC = arm-linux-gnueabihf-gcc QMAKE_CXX = arm-linux-gnueabihf-g++ QMAKE_LINK = arm-linux-gnueabihf-g++ QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ # modifications to linux.conf QMAKE_AR = arm-linux-gnueabihf-ar cqs QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy QMAKE_NM = arm-linux-gnueabihf-nm -P QMAKE_STRIP = arm-linux-gnueabihf-strip load(qt_config)
主要需要修改的就是编译架构和编译器
之后,回到qt-everywhere-opensource-src-5.6.2目录下,创建autoConfigure.sh,并修改权限
touch autoConfigure.sh chmod 0777 autoConfigure.sh
在autoConfigure.sh中输入:
./configure -prefix /opt/qt5.6.2-odroid \ -opensource \ -confirm-license \ -debug \ -shared \ -accessibility \ -c++std c++11 \ -xplatform linux-arm-gnueabihf-g++ \ -qpa linuxfb \ -linuxfb \ -qreal float \ -pch \ -qt-zlib \ -qt-libjpeg \ -qt-libpng \ -no-sse2 \ -no-largefile \ -no-qml-debug \ -no-glib \ -no-gtkstyle \ -no-opengl \ -nomake tools \ -nomake examples \ -skip qt3d -skip qtcanvas3d -skip qtdoc -skip qtwayland
最后:./autoConfigure.sh,这里会提示安装商业版还是开源版,选择’o’;之后,输入”yes”表示同意开源协议。
注意:这里没有指定编译选项,以后做裁剪的时候继续补充。
- make
- make install
本篇博客参考QT5.7交叉编译安装到arm和qt-5.6.0 移植之qt源码编译
Qt编译选项解析
这一部分主要参考qt-5.6.0 移植之qt源码编译,因为正在编译Qt5.6.2,所以看看一些编译选项,方便后期的裁剪。 -debug-and-release
:
Debug是调试版本,包含调试信息,所以容量比Release大很多,并且不会进行任何优化(优化会使调试复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件之外,还有一个.pdb文件,该文件记录了代码中断点的调试信息。
Release是发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。Release模式下生成一个文件.exe或.dll
Debug和Release的不同在于编译选项的不同,我们可以修改这些选项,从而得到优化过的调试版本或者带跟踪语句的发布版本。 opensource
:
编译和链接开源Qt版本,一般我们都使用开源的Qt版本
confirm-licenese
:
自动确认是开源的还是商业的
-shared
:
创建和使用动态Qt库,一般的话我们编译都是动态库,这样的话软件的大小不会太大
-accessibility
:
易接近支持,因为不同版本的qt都做了一些相关的改动,一般选择默认以提高软件的可移植性。
-qml-debug
和-no-qml-debug
:
编译是否QML调试支持,一般选择-no-qml-debug
-qt-zlib
和-system-zlib
:
zlib库时系统的zlib,但是要选-qt-zlib,据说因为架构不同,必须要选
-mtdev
和-no-mtdev
:
mtdev支持,是触摸屏多点控制协议的支持。多要触摸屏要支持多点控制,就加上。
-no-syslog
和-syslog
:
输入日志支持,一般默认
-no-gif
:
指定没有gif阅读功能,一般选上
-no-libpng
和-qt-libpng
,默认是-system-libpng
:
一般指定-no-libpng
或-qt-libpng
-no-libjpeg
和-qt-libjpeg
,默认是-system-libjpeg
:
一般指定-no-libjpeg
或-qt-libjpeg
-no-freetype
和-qt-freetype
,默认是-system-freetype
:
一般指定-no-freetype
或-qt-freetype
-no-harfbuzz
和-qt-harfbuzz
,默认是-system-harfbuzz
:
一般指定-no-harfbuzz
或-qt-harfbuzz
-no-openssl
和-openssl
和-openssl-linked
,默认是-openssl
:
一般指定-openssl
-no-libproxy
和-libproxy
:
一般指定-no-libproxy
-no-glib
和glib
:
一般指定-no-glib
-tslib
和-no-tslib
: -tslib
是触摸屏校准的一个功能
-no-linuxfb
和-linuxfb
-no-opengl
和-opengl <api>
:
一般指定-linuxfb
,使用linuxfb默认已经忽略opengl,一般-no-opengl
-verbose, -v
:
-v是指打印详细的信息关于每个配置程序
-make <part>
和-nomake <part>
:
选择要不要编译某些另外的模块,比如说libs,tools,examples
比如:-make examples -nomake tools -nomake tests
-skip <module>
:
从这个构建中排除整个模块,比如:-skip qt3d -skip qtcanvas3d -skip qtdoc -skip qtwayland
-silent
:
指定减少输出的信息,可以更容易的查找错误
-no-gtkstyle
和-gtkstyle
:
支持gtkstype GTK主题
总结:这些都是搬运qt-5.6.0 移植之qt源码编译中的内容,只是自己学习之后记录了部分,感谢大神分享!
其他
- 在实际的安装过程中会找不到对应的Ubuntu的文件,可以使用以下方式查找文件
也可以使用:- whereis 文件名
特点:快速,但是是模糊查找,例如 找 #whereis mysql 它会把mysql,mysql.ini,mysql.*所在的目录都找出来. - find / -name 文件名或文件夹名
特点:准确,但速度慢,消耗资源大,例如我想找到PHP.ini的准确位置,就需要用find / -name php.ini
- locate 文件名
强力推荐的方法,最快,最好的方法.
参考链接
- whereis 文件名
- 实际在启动Qt5.6.2的时候会出现如下错误:
/home/xxx/.config/Qtcreator/qtversion.xml : Permission denied
原因是我可能是我在root用户下安装的Qt5.6.2,而启动Qt5.6.2的时候是普通用户的权限,这时候就会出现这个问题。
解决方法:
修改/home/usrname/.config的权限:
chmod -R usrname:usrname /home/xxx/.config
这样普通用户也可以访问这个.config文件
解决方法参照askubuntu.com
总结
都是前人的东西,只是自己总结一遍,熟悉一遍,记录一遍,为了不重复造轮子!
- Ubuntu下Qt5.6.2开发环境搭建
- Windows下Qt5搭建Android开发环境
- Unbuntu14下Qt5 开发环境的搭建
- Windows7下QT5开发环境搭建
- Windows7下QT5开发环境搭建
- Ubuntu 下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu 13.04下构建Qt5开发环境
- Ubuntu下开发环境搭建
- 在Ubuntu环境下用QT5开发树莓派的GPIO程序(使用wiringPi库)之一 搭建环境
- windows下Qt5.2 for android开发环境搭建
- Win8.1下OpenCV2.4.9+Qt5.3.2开发环境搭建
- 13.2如何使用通用Mapper
- PHP获取PHP执行的时间
- 问卷星python自动提交
- 如何用好 github 中的 watch、star、fork
- linux中的strip命令简介
- Ubuntu下Qt5.6.2开发环境搭建
- 设置 当前样式dimstyle
- 存储过程更新数据
- spark取相同条件下最早记录
- Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装
- java安装1.8的经验和Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVers问题处理
- 封装一个基础BaseAdapter类
- px,rem,em的联系与区别
- 一点一点的积累算法JAVA版之二分查询