方案
1.使用第三方apt仓库下载编译好的qt4,有可能需要翻墙。
2.自己编译源码。
使用第三方apt仓库
sudo add-apt-repository ppa:ubuntuhandbook1/ppa
sudo apt update
sudo apt install qt4-default
想删除这个仓库的话就
sudo add-apt-repository --remove ppa:ubuntuhandbook1/ppa
自己编译源码
1.下载源码
搜索qt4,找官网下源码
2.解压
一般人会下载zip文件,因为tar文件解压参数比较长记不住,但是zip文件解压时要注意使用参数-a
,即
unzip -a qt-everywhere-opensource-src-4.8.6.zip
否则之后会报You don't seem to have 'make' or 'gmake' in your PATH. cannot proceed
这样的错。
3.换行符转换
进入解压好的文件夹,把configure文件的dos换行符换成unix的
sudo apt-get install dos2unix
dos2unix configure
4.编译配置
接下来按理说就要配置编译了,但根据目前实验最高能使用gcc7版本的编译器,最合适的应该是gcc4.8,否则编译不过,但是高版本ubuntu的apt仓库里可能没有这么老的gcc,所以要进行一些复杂操作了。
4.1比较简单的gcc4.8
如果选用gcc4.8则比较简单
sudo gedit /etc/apt/sources.list
最后一行添加deb http://archive.ubuntu.com/ubuntu bionic main universe
这个是ubuntu18的apt源,添加完就sudo apt update
一下
不出意外的话会报错缺少PUBLIC KEY,用下面这个指令添加公钥,如果你的公钥和我不同则自己替换
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
然后就可以放心地
sudo apt update
sudo apt install gcc-4.8 g++-4.8
接下来将默认gcc和g++改成4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 60
现在在qt源码的目录中
sudo ./configure -opensource -no-openssl -no-pch
sudo make -j12
sudo make install
完成qt4的编译安装
4.2略微复杂的gcc7
如果选用gcc7则稍微复杂
sudo gedit /etc/apt/sources.list
最后一行添加deb http://archive.ubuntu.com/ubuntu focal main universe
,这是ubuntu20的apt源
安装并将gcc7和g++7作为默认编译器
sudo apt update
sudo apt install gcc-7 g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 60
先配置一下qt4项目
./configure -opensource -no-openssl -no-pch
然后将C++标准切换至C++98,需要编辑两个文件
sudo gedit mkspecs/common/gcc-base.conf
找到这句
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
改成这样
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS -std=gnu++98
sudo gedit mkspecs/common/g++-base.conf
找到这句
QMAKE_CXX = g++
改成这样
QMAKE_CXX = g++ -std=gnu++98
最后进行编译安装
sudo make -j12
sudo make install
2 条评论
叼茂SEO.bfbikes.com
博主真是太厉害了!!!