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

一、开发环境

在经过前面的Ubuntu26.04的成功安装和相关的CUDA13.2的安装成功后。整体的硬件和软件的基础环境就搭建完成了。但距离开发需要的环境还有一大段的问题。所以仍然要再接再厉,将后续开发需要的C++和Qt及其它相关的支持库和第三方框架等安装成功。

二、基础需求

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

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

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

三、问题分析及解决

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

  1. 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
  2. dkms安装的问题

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

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

  1. 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,把相关的检查日期改成从不,后面的相关也改成不下载,不安装,只提醒即可

  1. Qt核心库编译无法找到

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

复制代码
sudo apt install  libgl1-mesa-dev

安装成功后,即可解决此类问题。所以此处必须特别注意依赖库的递归依赖问题

  1. 相关算法头文件无法找到

编译时发现一些基础的数据类型和算法接口无法通过。但在老的系统中都可以正常编译。应该是最新的编译器更加严格的限制了相关头文件的处理。这个很好解决,缺少哪个直接在相关文件中包含即可

  1. 硬件库的API不兼容问题

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

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

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

  1. ODB编译时的g++问题

ODB在编译时已经强行指定g+±13,这个问题其实不是算大问题。主要是需要重新安装相关版本即可:

复制代码
sudo apt install gcc-13 g++-13

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

其实小的细节还有很多。诸如缺少某些库,直接安装就可以,不是大问题,这里就没再说明出来。只是把一些重要的问题进行了分析和解决,供大家在遇到类似问题时可以参考。

四、总结

为什么不愿意重做系统,一个重要原因就在于此。很长的时间过去,新系统已经跨了多个版本,内心很是想用新的,但旧的库的支持性未必好。这就可能会陷入两头堵的境界。也亏得这次还可以兼容,如果真遇到不能兼容的,可就真的只能回退老系统了。

相关推荐
charlie1145141913 小时前
Cinux · 第一次跳进 Ring 3:用户态与特权隔离
开发语言·c++·操作系统·开源项目
别动我齐刘海3 小时前
机器学习基础2——C++、OpenCV、点云、Open3D
c++·人工智能·opencv·机器学习·计算机视觉·机器人·ros2
躺不平的理查德4 小时前
Windows C++ 第三方库使用流程备忘录--OpenCV
开发语言·c++
余额瞒着我当琳4 小时前
C++STL容器string--迭代器,string的接口,string的遍历,访问方式
c++
郭涤生4 小时前
rootfs 详解与裁剪优化记录
linux·c++·bsp
小小龙学IT5 小时前
C++ std::vector 底层实现深度解析:内存布局、扩容策略、移动语义与迭代器失效
开发语言·c++·算法
noipp5 小时前
推荐题目:洛谷 P16689 出征
java·开发语言·数据结构·c++·算法·洛谷·luogu
码匠许师傅5 小时前
【C++ 面试真题】聊聊 volatile 和 mutable
开发语言·c++·面试
(Charon)5 小时前
【C++】线程安全队列(二):生产者消费者模型与 condition_variable 阻塞等待
c语言·开发语言·c++