多くの問題を経て OS X Mavericks で DBUS が動作するようになった後、最後の問題が 1 つあります。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
では、すべての場所からアプリを起動できるようにするにはどうすればよいでしょうか?