在经历了很多问题之后让 DBUS 在 OS X Mavericks 上工作后,我遇到了最后一个问题。如果我不在 libdbus 所在的目录中,我的应用程序无法与总线交互。
为了清楚起见:下面的简单程序,基本上是 Widgets-Template,用于测试:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QDBusConnection con = QDBusConnection::sessionBus();
std::cout << "Connection status " << con.isConnected() << std::endl;
}
MainWindow::~MainWindow()
{
delete ui;
}
当从 QT Creator 中运行它时,我会得到:
Connection status 0
当移动到我的 lib-Path(它是 /opt/local/lib/;通过端口安装 dbus)并调用 /path/to/project/executable 时,我得到:
Connection status 1
那么我必须做些什么才能从每个位置启动我的应用程序?