dbus - 如何设置包含路径

时间:2014-02-06 12:10:32

标签: c++ ubuntu-12.04 dbus

在我的系统上,dbus标头放在/usr/include/dbus-1.0/dbus/中,而dbus-arch-deps.h位于其他位置(似乎很奇怪):/usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h在我的程序中,我包含#include<dbus-1.0/dbus/dbus.h>但在包含其他路径的每个头文件如下所示:#include<dbus/xxx.h>我可以将dbus-arch-deps.h复制到/usr/include/dbus-1.0/dbus/但是如何修复dbus标头中的路径?

3 个答案:

答案 0 :(得分:5)

您的系统可能已安装pkg-config。

g++ $(pkg-config --cflags dbus-1) main.c

Pkgconfig包含一个链接器/编译器/ etc的数据库。使用特定库所需的标志。有关详细信息,请参阅man pkg-config

答案 1 :(得分:1)

您无需复制文件。

使用dbus标志进行编译时,只需将I所在的路径添加到包含路径:

示例:

g++ -Wall -I /usr/include/dbus-1.0/ -o main.o

通过使用dbus所在的位置(在/usr/include的标准位置,您可以在源代码中引用如下文件:

#include <dbus/xxx.h>

同样,如果你必须链接dbus,你必须将该路径附加到Libraries包含路径,如下所示:

g++ -Wall -I /usr/include/dbus-1.0/ -o main.o -L <dbus library path>

dbus library path is where the libraries of dbus的地方。要弄清楚这一点,请查阅网络或搜索您的系统。

更新:

要在Qt-Creator(我从未使用过)中实现这一点,或许以下内容可以提供帮助:

How to add include path in Qt Creator?

答案 2 :(得分:1)

首先,您需要正确安装和配置它。 你应该尝试这个命令:

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

现在,这里是您应该编写用于编译的Makefile:

all:
g++ dbus.cpp -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

现在,您可以包含dbus / dbus.h,dbus / dbus-glib.h等文件。