在我的系统上,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标头中的路径?
答案 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(我从未使用过)中实现这一点,或许以下内容可以提供帮助:
答案 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等文件。