准备工作:
在开始之前最好把GCC升级到5.0以上。
如果升级后出现“libstdc++.so.6: version `CXXABI_1.3.9' not found”错误,可以参考https://blog.csdn.net/zx714311728/article/details/69628836解决。
----------------------------------------OK,开始QT-------------------------------------------------
qt下载地址:
http://download.qt.io/archive/qt/
找到5.11.0的源码包,下载。
5.11/5.11.0/single/qt-everywhere-src-5.11.0.tar.xz
从qt官网下载太慢,用百度找到国内镜像。
https://mirrors.tuna.tsinghua.edu.cn/qt/
悲剧,国内镜像只有5.10,只好下载5.10.1 ,文件名是 qt-everywhere-src-5.10.1.tar.xz
在下载期间可以同时构建编译系统。
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev
sudo apt-get install libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev
下载后拷贝到本地目录,打开终端窗口,进入到压缩包所在目录,进行编译和安装。
xz -d qt-everywhere-src-5.10.1.tar.xz
tar xvf ./qt-everywhere-src-5.10.1.tar
cd qt-everywhere-src-5.10.1/
./configure
qmake -r
make
sudo make install
接下来编辑环境
gedit ~/.profile
在profile里增加指向qmake的PATH
if [ -d "/usr/local/Qt-5.10.1/bin" ] ; then
PATH="$PATH:/usr/local/Qt-5.10.1/bin"
fi
跑到 /usr/local/Qt-5.10.1/bin 目录看一下,没有qtcreator,晕死。
在命令行上执行sudo apt-get install qtcreator,乖乖,要装好多东西。算了,手动安装吧。
https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qtcreator/4.6/4.6.1/qt-creator-opensource-src-4.6.1.tar.xz
解压缩方法同前。
在编译qtcreator之前,为了让刚才安装的qt 5.10.1起作用,编辑 /usr/lib/i386-linux-gnu/qt-default/qtchooser/default.conf,改为以下内容
/usr/local/Qt-5.10.1/bin
/usr/local/Qt-5.10.1
#/usr/lib/i386-linux-gnu/qt4/bin
#/usr/lib/i386-linux-gnu
回到qtcreator源码目录(这个目录下有 qtcreator.pro和README.md)
qmake -r
make
sudo make install
现在可以在命令行上执行qtcreator了。
但是现在qtcreator里还没有帮助。
回到qt源码目录和qtcreator源码目录,分别执行
make docs
sudo make install_docs
然后在qtcreator里,工具->选项->帮助->文档->添加,在/usr/local/Qt-5.10.1/doc 和 /share/doc/qtcreator,把能找到的qch文件都包含进去。
这时候创建qt工程还是会出错。在qtcreator里,工具->选项->构建和运行->构建套件(kit),找到Qt版本,选中Qt5.10.1。
现在可以创建已经 hello world工程了。