我一直在玩GLib的D-Bus綁定,試圖獲得某些東西(任何東西)的工作,但成效非常有限。我一直試圖讓Ross Burton's example code編譯和運行,但不斷遇到新的和令人興奮的困難。D-Bus GLib綁定 - 無法從地面獲取代碼
你能幫忙調試這段代碼嗎?或者說失敗了,請指點一下D-Bus GLib代碼的一些例子,它可以工作嗎?
由於羅斯的代碼外的日期,我已經取代了線
dbus_g_object_class_install_info (G_OBJECT_CLASS (echo_class), &dbus_glib_echo_object_info);
與
dbus_g_object_type_install_info (G_OBJECT_TYPE (echo_class), &dbus_glib_echo_object_info);
按他的那篇文章的意見,但沒有其他的變化比其他更新包含目錄以匹配我盒子上的設置。
當運行服務器可執行文件,不過,我得到以下錯誤:
** (process:11747): CRITICAL **: dbus_g_object_type_install_info: assertion `G_TYPE_IS_CLASSED (object_type) || G_TYPE_IS_INTERFACE (object_type)' failed
此時的堆棧跟蹤,根據廣發行,是
#0 0x0000003b5f40b440 in dbus_g_object_type_install_info() from /usr/lib64/libdbus-glib-1.so.2
#1 0x0000003b5722909c in g_type_class_ref() from /lib64/libgobject-2.0.so.0
#2 0x0000003b57229798 in g_type_create_instance() from /lib64/libgobject-2.0.so.0
#3 0x0000000000400f16 in main (argc=<value optimized out>, argv=0x7fff156497d8) at EchoObject.c:111
我不知道什麼是出錯,或者下一步應該調試什麼。我想獲得一些基本的代碼發送和接收D-Bus方法調用消息,所以我可以看到事情應該如何在我的應用程序中使用。
我使用D-Bus 0.73。
更新:鑑於我缺乏成功,並且缺乏響應,我目前正在考慮放棄D-Bus並尋找其他IPC機制。
更新2:最後,我使用了一個名爲套接字的Unix方法,它正在完成我所需要的280行代碼(加上測試代碼)。
我現在已經推出了一個不同的解決方案,所以我不認爲我會等待GDBus出現。不管怎麼說,還是要謝謝你! – 2010-09-15 11:55:06