gpt4 book ai didi

c - 如何编译基本的 D-Bus/glib 示例?

转载 作者:太空狗 更新时间:2023-10-29 16:31:49 27 4
gpt4 key购买 nike

我正在尝试学习如何将 D-Bus 与 C 绑定(bind)一起使用。我以前从未使用过 D-Bus。我正在关注这个 tutorial ,我认为这是官方的 (Freedesktop.org)。我一直读到这paragraph给出了第一个示例程序,但不幸的是,我在此页面上看不到任何关于如何编译它或要包含哪些库的指示。我错过了什么吗?

我的操作系统是 Ubuntu 10.04 32 位。我安装了 libdbus-glib-1-dev包裹。我尝试添加 #include <dbus/dbus.h>在源文件的开头,并编译

$ gcc -ldbus-1 -I/usr/include/dbus-1.0/ -I/usr/lib/i386-linux-gnu/dbus-1.0/include -o my_dbus.bin my_dbus.c

但我一直在失败:

my_dbus.c: In function ‘main’:
my_dbus.c:7:3: error: unknown type name ‘DBusGConnection’
my_dbus.c:8:3: error: unknown type name ‘GError’
...

我是否遗漏了教程中的一点?不是,你能帮我编译这段代码吗?

提前致谢。

最佳答案

像这样的教程通常假定您对编写它的语言(在本例中为 C)以及您将在其上运行它的操作系统有一定的了解。

查看教程,我发现它只包含一个main 函数。因此,您需要添加适当的 #include 指令才能使其正常工作:

#include <stdlib.h>          // for exit()   
#include <dbus/dbus.h> // for dbus_*
#include <dbus/dbus-glib.h> // for dbus_g_*

此外,您还需要编译库(在本例中为 dbusdbus-glib),或使用操作系统中的预编译库,在为了将它们链接到可执行文件。

您还需要随源代码提供的头文件,或您操作系统的“开发”包。

例如,在我的 Ubuntu 工作站上,我可以像这样安装源文件和头文件:

sudo apt-get -y install dbus libdbus-1-dev libdbus-glib-1-2 libdbus-glib-1-dev

一旦它们被编译(或正确安装),您就可以继续编译程序。您将需要指定正确的包含路径和库以链接到编译器/链接器。例如,对于 GCC 和我当前的设置,它将是:

gcc test.c -I/usr/include/dbus-1.0 \
-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include \
-I/usr/include/glib-2.0 \
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ \
-ldbus-1 \
-ldbus-glib-1 \
-Wall -Wextra

这应该在当前目录中创建一个可执行文件 a.out

当然,我在 C 和 Linux 方面有几年的经验,所以我很容易弄清楚所有这些东西。如果您希望从 C 开始,您可能应该从更简单的东西开始。

关于c - 如何编译基本的 D-Bus/glib 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14263390/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com