47人参与 • 2026-08-31 • 正则表达式
在经过前面的ubuntu26.04的成功安装和相关的cuda13.2的安装成功后。
整体的硬件和软件的基础环境就搭建完成了。但距离开发需要的环境还有一大段的问题。
所以仍然要再接再厉,将后续开发需要的c++和qt及其它相关的支持库和第三方框架等安装成功。
在实际的开发环境中,需要的相关ui框架和相关库很多,下面把出现主要相关的分析说明一下:
其实还是需要不少的其它的环境的,如一些医疗的相关库如dicom和日志等库,但这些都比较好安装,不容易出现问题,这里就不再一一的说明了。
下面主要看具体的问题。问题分成两大类,一种是安装相关的问题,另外一种是编译时出现的相关问题。
下面首先先看安装时的问题:
这个是一个常见问题,可以耗时间安装,也可以修改系统的镜像源,也可以直接使用:
./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
这个是ubuntu26的内核过新的问题产生的,已有专门的文章分析
然后再看一下编译的问题。在安装好基本的相关支持环境后,对原有的代码进行了编译,出现了下列的问题:
这个问题比较麻烦,编译从一个相对简单的项目开始,直接报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,把相关的检查日期改成从不,后面的相关也改成不下载,不安装,只提醒即可
这个比较恶心,明明相关的quick已经安装,但却报找不到。后来发现是quick依赖的opengl未安装,同样也会报这类错误。解决的方式是安装opengl:
sudo apt install libgl1-mesa-dev
安装成功后,即可解决此类问题。
所以此处必须特别注意依赖库的递归依赖问题
编译时发现一些基础的数据类型和算法接口无法通过。但在老的系统中都可以正常编译。
应该是最新的编译器更加严格的限制了相关头文件的处理。
这个很好解决,缺少哪个直接在相关文件中包含即可
这个属于库安装的版本不对,使用命令查看:
dpkg-query -w -f='${package}\t${version}\n' libxxx
发现版本号不同,安装最新的版本即可。而且不需要卸载前面的,覆盖安装即可正常使用
odb在编译时已经强行指定g+±13,这个问题其实不是算大问题。
主要是需要重新安装相关版本即可:
sudo apt install gcc-13 g++-13
安装成功后不会影响当前的系统默认,因为odb是直接指定使用g+±13的。
其实小的细节还有很多。诸如缺少某些库,直接安装就可以,不是大问题,这里就没再说明出来。
只是把一些重要的问题进行了分析和解决,供大家在遇到类似问题时可以参考。
为什么不愿意重做系统,一个重要原因就在于此。
很长的时间过去,新系统已经跨了多个版本,内心很是想用新的,但旧的库的支持性未必好。这就可能会陷入两头堵的境界。
也亏得这次还可以兼容,如果真遇到不能兼容的,可就真的只能回退老系统了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论