XUbuntu18.04 源码编译Qt4.5.3的过程

由于新公司很多旧的软件都是基于这个版本做的嵌入式开发。

所以想要自己搭一套基于Linux的非嵌入式开发环境,方便用来调试和编译代码。

这样就可以完成在linux下开发,然后直接嵌入式打包,涉及到界面的部分就不需要上机调试看问题了。

所以就开始踩坑的过程。主要是以下几个问题

1.Qt4.5.3的在linux上只能源码编译安装,需要找低版本的gcc,找gcc的过程很麻烦

  1. ubuntu上的报错问题

问题1的解决过程:

对Qt4.5.3支持的最好的gcc是4.2.x系列,已经是十几年前的东西了。4.3.x也可以很好的兼容,4.4.x理论上应该也可以。

但是ubuntu的镜像源上,很难找到低版本的gcc

也就是无法用 sudo apt-get install gcc-4.2 gcc-4.3完成安装。我找了很长时间都没找到。至找打了这几个的安装包,也就是deb包,安装的时候,也是各种坑。最后放弃

最后只能用找到的最低版本的4.4.7去编译,请参考这篇文章安装gcc g++4.4

ubantu20-安装gcc-4.4-g++-4.4_42ggcc-CSDN博客

总结下来,就是更新sources.list中的ubuntu源的版本,由于gcc4.4在低版本的ubuntu的源里,所以更新后,就能安装了

问题2的解决过程:

主要是执行:./configure

时候提示make 没有安装

执行: sudo apt-get install make

bash 复制代码
sudo apt-get install make

缺少x库时候执行:sudo apt-get install libx11-dev libxext-dev libxtst-dev

bash 复制代码
sudo apt-get install libx11-dev libxext-dev libxtst-dev

一开始X用的大写,换成小写就行了。

安装这三个库以后,开始编译。具体过程参考这篇文章

https://www.cnblogs.com/sggggr/p/17898089.html

把里边的源码换成4.5.3就行了。其他不要多余安装什么库,只需要安装上面这三个

后面进入源码目录,直接

sudo ./configure

依次输入o

yes

结束后

执行sudo make -j4

-j4是开启4核编译,我的虚拟机最多4个核心,所以就只能是-j4

最后很顺利编译完成了。

执行 sudo make install

Qt4.5.3的默认安装路径是在 /usr/local/Trolltech

添加qmake路径下就行了

sudo vim /etc/profile

把下面的添加到最后

export QTDIR=/usr/local/Trolltech/Qt-4.5.3

export PATH=QTDIR/bin:PATH

export MANPATH=QTDIR/man:MANPATH

export LD_LIBRARY_PATH=QTDIR/lib:LD_LIBRARY_PATH

source /etc/profile

最后输入 qmake -v 就i可以看到了

我用的不是ubuntu版本我用的是XUbuntu版本。

过程踩坑比这个多,我装了好几个虚拟机,一开始在22.04上用gcc4.7 编译不行。用gcc4.4.7编译也不行。

最后 换了这个XUbuntu的版本才算搞定。然后安装一个qtcreator4.0.3

下载链接在这里

Index of /archive/qtcreator/4.0/4.0.3

新建工程,运行

新公司电脑配置太低了,用的是XUbuntu,比ubuntu更节省硬件。

用起来还是有点不太舒服的。

后面空了,看下能不能在ubuntu18.04上完成编译,昨天装ubuntu18.04的桌面版的时候很长时间都没装好

相关推荐
xianwu54319 分钟前
反向代理模块。
linux·开发语言·网络·c++·git
heat.huang36 分钟前
Linux 注册线程化的中断处理程序
linux
请卧龙先生出山37 分钟前
Linux标准IOday3
linux·运维·服务器
却染人间愁1 小时前
Android原生开发同一局域网内利用socket通信进行数据传输
linux·服务器·网络
嘻嘻嘻哈哈哈嘻嘻嘻1 小时前
LVM(逻辑卷)
运维
chnming19871 小时前
Debian source_list首次踩坑
运维·debian
一只fish1 小时前
Linux 中 top 命令的使用与实例解读
linux
小林熬夜学编程1 小时前
【Linux网络编程】第二十二弹---深入理解 I/O 多路转接之 epoll:系统调用、工作原理、代码演示及应用场景
linux·运维·服务器·开发语言·网络·c++
豆是浪个1 小时前
Linux(Centos 7.6)命令详解:mkdir
linux·运维·centos
一袋米扛几楼982 小时前
【运维】如何检查电脑正常异常和关机日志? 1074正常关机或重启 6006正常关机 41非正常关机 6008异常关机
运维·单片机·电脑