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

embedded/2024/10/25 16:25:31/

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

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

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

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

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

2. 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

sudo apt-get install make

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

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的桌面版的时候很长时间都没装好


http://www.ppmy.cn/embedded/10372.html

相关文章

vue项目全局挂载函数 — webpack.ProvidePlugin

ProvidePlugin:(官方文档解释) 自动加载模块,而不必在任何地方 import 或 require 它们。 理解:在项目中,存在业务逻辑相同的功能,为了减少代码的书写,我们一般会选择抽离出复用的代…

Spring源码中的简单工厂模式

Spring 源码中广泛运用了各种设计模式,其中包括简单工厂模式。简单工厂模式在 Spring 中主要用于简化对象的创建过程,将对象的创建逻辑集中管理,从而使得客户端代码无需关心具体的对象创建细节,只需与工厂交互就能获取所需的对象实例。这种设计有助于提高代码的可读性、可维…

记录如何用php做一个网站访问计数器的方法

简介 创建一个简单的网站访问计数器涉及到几个步骤,包括创建一个用于存储访问次数的文件或数据库表,以及编写PHP脚本来增加计数和显示当前的访问次数。 方法 以下是使用文件存储访问次数的基本步骤: 创建一个文本文件来存储计数&#xff1a…

1125页Go语言技术手册,涵盖Go语言所有核心知识点,限时免费下载!

从Docker的兴起,到Kubernetes的冲击,让Go语言在后端的地位,尤其在偏中高级业务需求(对性能、代码质量、架构设计等)中已经不可撼动。后端开发工程师逐渐开始对Go语言产生兴趣,无论是擅长何种语言的后端工程师,个人认为…

【Linux】认识文件(二):重定向

【Linux】认识文件&#xff08;二&#xff09;&#xff1a;重定向 一.stdout,stderr,stdin二.重定向1.什么是重定向i.输出重定向>ii.追加重定向>>iii.输入重定向< 2.重定向原理3.dup2的使用 三.理解linux中的一切皆文件 上篇文件博客中&#xff0c;讲了进程管理已打…

基于mmdetection3d框架完成nvx-net算法的训练和推理

文章目录 写在前面1.安装cuda和cudnn2.配置mmdetection3d环境3.测试mmdetection3d中的多模态3D目标检测算法4.下载kitti数据集5.基于kitti数据集对多模态3D目标检测算法进行复现6.基于kitti数据集训练结果进行推理7.问题与思考 写在前面 参考链接&#xff1a; MMdetection3d环…

【Linux开发 第十二篇】搭建JavaEE环境

搭建开发环境 搭建javaEE环境 搭建javaEE环境 在Linux下开发JavaEE需要安装软件包&#xff1a; 安装jdk 安装步骤&#xff1a; 在opt目录下创建jdk目录通过xftp上床到jdk目录中进入到jdk目录中&#xff0c;解压jdk压缩包在/usr/local下创建java目录将解压完成的jdk文件移动…

启动前端项目

前提&#xff1a; node.js vue 查找是否下载好&#xff1a; node -v 检查版本 npm -v 检查版本先下载依赖&#xff1a; npm install 启动&#xff1a; npm run serve/dev 依赖下载失败解决方案&#xff1a; 一、在项目根路径找到.npmc文件把镜像路径改成…