运行环境:ARM
运行如下代码:
QDBusConnection bus = QDBusConnection::sessionBus(); if (!bus.registerService( "com.speedpro.venus" )){ qDebug() << "MessageServer" << bus.lastError().message(); exit (1); } |
遇到问题: Not connected to D-Bus server
手动启动server:dbus-daemon --session --print-address --fork --print-pid
得到输出:
1 | unix:abstract=/tmp/dbus-joKjEI2Nlt,guid=ba3900731f265bfec1fa867f5d1061881372 |
重新运行程序,问题依旧。
使用如下代码启动DBUS服务:
1 | eval `dbus-launch --auto-syntax` |
哇哦,竟然成功了。
这行命令的意思是:
采用eval来执行两次,第一次执行dbus-lauch --auto-syntax,除了启动dbus daemon之外,还输出了下面的内容(改内容在命令行不可见):
DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-bIg8pa0xJr,guid=704d5838c9c3408b858966205d1064b4'; export DBUS_SESSION_BUS_ADDRESS; DBUS_SESSION_BUS_PID=1380;
第二次执行时就将环境变量DBUS_SESSION_BUS_ADDRESS暴露出去了。所有的dbus application在注册DBUS服务时,必须知道这个DBUS_SESSION_BUS_ADDRESS的数据。
第二个问题:
Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
使用
eval `dbus-launch --sh-syntax`
可以。
一定要记得重新加载系统配置:
source /etc/profile
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理