dbus - 如何设置包含路径

Posted

技术标签:

【中文标题】dbus - 如何设置包含路径【英文标题】:dbus - how to set include paths 【发布时间】:2014-03-03 09:08:24 【问题描述】:

在我的系统上,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 标头中的路径?

【问题讨论】:

【参考方案1】:

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

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

Pkgconfig 包含链接器/编译器/等数据库。使用特定库所需的标志。请参阅man pkg-config 了解更多信息。

【讨论】:

这对我有用。但我不明白的是,为什么这些包名不同?【参考方案2】:

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

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 等文件。

【讨论】:

【参考方案3】:

您不需要复制文件。

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

示例:

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

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

#include <dbus/xxx.h>

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

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

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

更新:

要在 Qt-Creator(我从未使用过)中实现这一点,也许以下内容会有所帮助:

How to add include path in Qt Creator?

【讨论】:

如何在 Qt Creator 中实现?

以上是关于dbus - 如何设置包含路径的主要内容,如果未能解决你的问题,请参考以下文章

dbus - 未定义的引用

如何通过 .htaccess 设置 PHP 包含路径?

如何使用自动工具设置包含路径

Python 正确有效地获取 DBUS 对象路径(例如 /org/bluez/dev_XX_XX_XX_XX_XX_XX/playerY)

IAR和Keil文件包含路径设置

如何在python的扩展类中使用dbus导出方法,继承方法?