Ubuntu18静态编译(源码安装)Qt5.9.8

  1. 首先确保电脑有gcc g++环境,如果没有,直接指令
    安装 gcc: sudo apt-get install gcc
    安装g++: sudo apt-get install build-essential
    测试环境:
    gcc --version(-- ,这是两个 - )
    g++ --versionUbuntu18静态编译(源码安装)Qt5.9.8_第1张图片

    							图1 gcc  g++ 测试结果
    
  2. 我安装的Qt5.9.8要求有python2环境,为确保在make的时候不报错。(千万不要卸载python3 ,可能你的桌面有一部分是依赖它包含的包,卸载了再重装会附带很多没有的软件,一个字,累,两个字,心累!!!因为这个重装了一次系统)
    可以先测试一下: python -V(大写 -V)
    如果没有以下的测试结果:
    就运行指令:Ubuntu18静态编译(源码安装)Qt5.9.8_第2张图片

       							图2 python2测试结果
    
  3. 接下来是Qt开源包下载,官网http://download.qt.io/archive/qt/下载对应的版本就可以了,我下载的是5.9.8。(在所有的包里面,我发现我这个点,只有5.9.8里面含有opensource的字眼,建议你们下载的包必须有这个字眼,避免后面运行程序是platforms出错,链接不到xbc包,如果你们这时候更高版本里面的包,也有opensource字眼,也可以下载)
    下载对应的包:
    Ubuntu18静态编译(源码安装)Qt5.9.8_第3张图片

    								图3 下载对应的包
    

    选择single:
    Ubuntu18静态编译(源码安装)Qt5.9.8_第4张图片

    								图4 选中single
    

    选择含有opensource的包:
    Ubuntu18静态编译(源码安装)Qt5.9.8_第5张图片

    		 					图5 选择含有opensource的包
    
  4. 下载完毕后,解压对应的包后,进入里面,运行配置前,需要安装两个包,
    sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
    如果不安装的话,会在后面配置出错,接下来就是配置了,
    在开源包里面运行该指令:
    ./configure --prefix=/usr/local/qt-5.9.8 -qt-xcb
    –prefix是指定文件夹安装的路径,如果不加的话,是默认路径,-qt-xcb是根据在开源包里面,…/Downloads/qt-everywhere-opensouce-src-5.9.8/qtbase/src/plugins/platforms/xcb/README里面说明了,如果未自己安装相关的xbc包,必须声明使用默认的包,
    Ubuntu18静态编译(源码安装)Qt5.9.8_第6张图片

    								图6 文档说明
    

(个人觉得如果加上参数 -static不是多此一举吗,明明是静态编译了,还需要说明吗。)
接下去make就可以了,建议 sudo make 比较好,
make 完了,就 sudo make install .
完毕后,进行环境配置:
sudo vim /etc/profile

export QTDIR=/usr/local/qt-5.9.8
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

你要做的就是把QTDIR换成你的安装路径,放在/etc/profile的最后
source /etc/profile
让环境变量立即生效。
可以同用 echo $QTDIR 测试
同样 qmake -v 会显示版本信息
Ubuntu18静态编译(源码安装)Qt5.9.8_第7张图片

							图7 安装后的测试结果
  1. 代码测试
	#include  //关于头文件,有时候必须制定QtWidgets
   #include 

   int main(int argc, char *argv[])
   {
       //创建一个QApplication实例
       QApplication a(argc, argv);
       //创建一个label实例,显示英文
       QLabel  label("Hello Qt");
       //改变label大小
       label.resize(100,50);
       //显示label
       label.show();
       //进入QApplication事件循环
       return a.exec();
     }

qmake -project

修改生成的 .pro 文件,在最后加上
QT += widgets

qmake qttest.pro

Ubuntu18静态编译(源码安装)Qt5.9.8_第8张图片

			 						图8 添加位置
  1. 最后 make 一下 运行 ./qttest

  2. 这时候会发现没有字
    代码里面明明要显示字的,结果报错了,查阅官方文档,发现qt不在提供字体,于是到qt-5.9.8的安装目录下
    Ubuntu18静态编译(源码安装)Qt5.9.8_第9张图片

    		 					图9 源代码		
    
  3. 在/usr/local/qt-5.9.8/lib下创建文件夹 fonts 把各种字体包放进去就行了
    Ubuntu18静态编译(源码安装)Qt5.9.8_第10张图片

查阅更高版本的安装包后,更新一下前面关于开源的静态编译包的下载说法:所有的dependecise都可以通过对应的 包名/qtbase/src/plugins/platforms/xcbREADME 里面找到 -qt-xbc 链接到默认的依赖 不需要必须 opensource 字眼,抱歉。 原文如下:

	The '-qt-xcb' configure option can be used to get rid of most 
	xcb- dependencies. Only libxcb will still be linked dynamically, since it
	 will be most likely be pulled in via other dependencies anyway.This should 
	 allow for binaries that are portable across most modern Linux distributions.

你可能感兴趣的:(Ubuntu18静态编译(源码安装)Qt5.9.8)