ubuntu26环境下的开发环境安装处理过程

 更新时间:2026年08月31日 15:19:02   作者:fpcc  
本文详细记录了Ubuntu 26.04下搭建C++和Qt开发环境的过程,重点解决dbus库版本不兼容、Qt编译找不到OpenGL依赖、系统自动更新导致库版本回退等常见问题,并分享了ODB框架编译时指定g++13的注意事项,帮助开发者顺利配置稳定的开发环境

一、开发环境

在经过前面的Ubuntu26.04的成功安装和相关的CUDA13.2的安装成功后。

整体的硬件和软件的基础环境就搭建完成了。但距离开发需要的环境还有一大段的问题。

所以仍然要再接再厉,将后续开发需要的C++和Qt及其它相关的支持库和第三方框架等安装成功。

二、基础需求

在实际的开发环境中,需要的相关UI框架和相关库很多,下面把出现主要相关的分析说明一下:

  1. Qt开发框架
    这个不用多说,广泛的UI界面的开发框架,开发环境也是必须的
  2. dubs相关库
    整体环境的通信调度管理使用的这个库,需要说明的,不要使用C的dbus库
  3. sqlite3及相关ODB框架
    应用到了文件型数据库sqlite3以及其ORM映射的ODB库。之所以选择Ubuntu的一个重要原因也在于此。使用Debain需要自行编译相关的源码,安装很多第三方的依赖,成本过高
  4. 硬件相关的库
    应用到了硬件采集卡,所以需要安装相关的驱动等程序及相关的模块

其实还是需要不少的其它的环境的,如一些医疗的相关库如DICOM和日志等库,但这些都比较好安装,不容易出现问题,这里就不再一一的说明了。

三、问题分析及解决

下面主要看具体的问题。问题分成两大类,一种是安装相关的问题,另外一种是编译时出现的相关问题。

下面首先先看安装时的问题:

Qt安装速度慢

这个是一个常见问题,可以耗时间安装,也可以修改系统的镜像源,也可以直接使用:

./qt-online-installer-linux-x64-online.run --mirror https://mirrors.tuna.tsinghua.edu.cn/qt   
或
./qt-online-installer-linux-x64-online.run --mirror https://mirrors.ustc.edu.cn/qtproject
如果后续继续安装可使用:
./MaintenanceTool --mirror https://mirrors.tuna.tsinghua.edu.cn/qt

dkms安装的问题

这个是Ubuntu26的内核过新的问题产生的,已有专门的文章分析

然后再看一下编译的问题。在安装好基本的相关支持环境后,对原有的代码进行了编译,出现了下列的问题:

dbus库的版本问题

这个问题比较麻烦,编译从一个相对简单的项目开始,直接报dbus库的一系列的问题。主要原因其实就是dbus版本太新,导致API接口的不同。

但大家都明白,升级版本往往相对容易,但降级,特别是在新系统上降级比较麻烦。但这也是没办法的事。

已经无法使用apt自动安装了,需要去官方库下载老版本手动安装:

  #下载
  ### 使用 Wget
 wget --tries=3 \
   -O /tmp/libsdbus-c++1_1.1.0-3_amd64.deb \
   'https://archive.ubuntu.com/ubuntu/pool/universe/s/sdbus-cpp/libsdbus-c++1_1.1.0-3_amd64.deb'

 wget --tries=3 \
   -O /tmp/libsdbus-c++-dev_1.1.0-3_amd64.deb \
   'https://archive.ubuntu.com/ubuntu/pool/universe/s/sdbus-cpp/libsdbus-c++-dev_1.1.0-3_amd64.deb'

 ### 使用 Curl

 curl -fL --retry 2 \
   -o /tmp/libsdbus-c++1_1.1.0-3_amd64.deb \
   'https://archive.ubuntu.com/ubuntu/pool/universe/s/sdbus-cpp/libsdbus-c++1_1.1.0-3_amd64.deb'

 curl -fL --retry 2 \
   -o /tmp/libsdbus-c++-dev_1.1.0-3_amd64.deb \
   'https://archive.ubuntu.com/ubuntu/pool/universe/s/sdbus-cpp/libsdbus-c++-dev_1.1.0-3_amd64.deb'

    ## 安装
    sudo apt-get install -y --allow-downgrades \
   /tmp/libsdbus-c++1_1.1.0-3_amd64.deb \
   /tmp/libsdbus-c++-dev_1.1.0-3_amd64.deb

安装成功后,这个问题解决。但后来又出来同样的问题。

过了一个周末回来后发现又出现这个问题了,经过查找,发现是系统自动升级了。而Ubuntu26.04又没有直接操作的界面。

但可以使用下面的命令安装:

sudo apt install software-properties-gtk

安装成功后,会在系统应用程序中找到它,打开,找到Updates,把相关的检查日期改成从不,后面的相关也改成不下载,不安装,只提醒即可

Qt核心库编译无法找到

这个比较恶心,明明相关的Quick已经安装,但却报找不到。后来发现是Quick依赖的OpenGL未安装,同样也会报这类错误。解决的方式是安装OpenGL:

sudo apt install  libgl1-mesa-dev

安装成功后,即可解决此类问题。

所以此处必须特别注意依赖库的递归依赖问题

相关算法头文件无法找到

编译时发现一些基础的数据类型和算法接口无法通过。但在老的系统中都可以正常编译。

应该是最新的编译器更加严格的限制了相关头文件的处理。

这个很好解决,缺少哪个直接在相关文件中包含即可

硬件库的API不兼容问题

这个属于库安装的版本不对,使用命令查看:

dpkg-query -W -f='${Package}\t${Version}\n' libxxx

发现版本号不同,安装最新的版本即可。而且不需要卸载前面的,覆盖安装即可正常使用

ODB编译时的g++问题

ODB在编译时已经强行指定g+±13,这个问题其实不是算大问题。

主要是需要重新安装相关版本即可:

sudo apt install gcc-13 g++-13

安装成功后不会影响当前的系统默认,因为ODB是直接指定使用g+±13的。

其实小的细节还有很多。诸如缺少某些库,直接安装就可以,不是大问题,这里就没再说明出来。

只是把一些重要的问题进行了分析和解决,供大家在遇到类似问题时可以参考。

四、总结

为什么不愿意重做系统,一个重要原因就在于此。

很长的时间过去,新系统已经跨了多个版本,内心很是想用新的,但旧的库的支持性未必好。这就可能会陷入两头堵的境界。

也亏得这次还可以兼容,如果真遇到不能兼容的,可就真的只能回退老系统了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Centos7下yum安装Ceph分布式存储教程

    Centos7下yum安装Ceph分布式存储教程

    大家好,本篇文章主要讲的是Centos7下yum安装Ceph分布式存储教程,感兴趣的同学快来看一看吧,对你有帮助的话记得收藏一下哦
    2021-11-11
  • 如何在Linux环境为用户添加sudo权限

    如何在Linux环境为用户添加sudo权限

    这篇文章主要介绍了如何在Linux环境为用户添加sudo权限,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Linux自带的logrotate管理日志用法

    Linux自带的logrotate管理日志用法

    Linux系统中,logrotate工具用于管理和轮转日志文件,防止系统因日志文件过大导致磁盘爆满,通过配置/etc/logrotate.conf和/etc/logrotate.d/下的文件,用户可以定义日志处理规则,如压缩、备份
    2024-10-10
  • 浅谈三种配置linux环境变量的方法(以java为例)

    浅谈三种配置linux环境变量的方法(以java为例)

    下面小编就为大家带来一篇浅谈三种配置linux环境变量的方法(以java为例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • centOS7 桥接模式设置静态Ip的方法步骤

    centOS7 桥接模式设置静态Ip的方法步骤

    这篇文章主要给大家介绍了关于centOS7 桥接模式设置静态Ip的方法步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用centOS7具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Linux查看进程的四种方法小结

    Linux查看进程的四种方法小结

    文章介绍了四种在Linux系统中查看进程的方法,包括ps、top、htop和pstree命令,每种方法都有其独特的优势,通过这些方法,用户可以更有效地管理系统进程,需要的朋友可以参考下
    2025-02-02
  • Ubuntu18.04 一键升级Python所有第三方包 及安装python包的方法

    Ubuntu18.04 一键升级Python所有第三方包 及安装python包的方法

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。这篇文章给大家介绍Ubuntu18.04 一键升级Python所有第三方包 ,感兴趣的朋友一起看看吧
    2019-10-10
  • apache 二级域名解析 (window与linux)

    apache 二级域名解析 (window与linux)

    apache 二级域名解析 window与linux下使用的方法。
    2009-11-11
  • Linux crontab定时任务执行失败处理方案

    Linux crontab定时任务执行失败处理方案

    这篇文章主要介绍了Linux crontab定时任务执行失败处理方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • VMWare中CentOS ifcfg-eth0配置方法(亲测直接可用)

    VMWare中CentOS ifcfg-eth0配置方法(亲测直接可用)

    本篇文章主要介绍了VMWare中CentOS ifcfg-eth0配置,这些配置是基于VMware Network Adapter VMnet8,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03

最新评论