dbus-1.0/dbus/dbus.h:29:10: fatal error: 'dbus/dbus-arch-deps.h' file not found

dbus-1.0/dbus/dbus.h:29:10: fatal error: 'dbus/dbus-arch-deps.h' file not found

我在我的程序中使用了 dbus,但是当我包含 #include <dbus-1.0/dbus/dbus.h> 我收到错误: dbus-1.0/dbus/dbus.h:29:10: fatal error: 'dbus/dbus-arch-deps.h' file not found

文件夹 dbus 中没有 dbus-arch-deps.h 文件。

我可以在文件夹中看到这个文件lib64/dbus-1.0/include/dbus/dbus-arch-deps.h

谁能帮我编译一下? 或者任何建议,因为我被困在这里。

由于没有得到任何人的答复,但我终于解决了这个问题。 所以想 post 如果有人遇到类似问题的解决方案。

我通过在 cflags 中添加 -I/usr/lib64/dbus-1.0/include/ 解决了这个问题。

迟到的答案。然而,这可能对使用 ubuntu (18.04 lts).

开发 WSL(Windows 子系统)的人有帮助

包含的文件夹是

  • /usr/lib/x86_64-linux-gnu/dbus-1.0/包括
  • /usr/include/dbus-1.0

还有 Link 和 :

  • -ldbus-1

如果你在那里找不到任何东西,请尝试:sudo apt-get install dbus-x11

尝试

sudo cp /usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h /usr/include/dbus-1.0/dbus/.

问题是 dbus 需要两个不同的包含路径。无论如何,最好的方法是在此处使用 pkg-config。 pkg-config 文件 dbus-1.pc,实际上包括这些 cflags:

Cflags: -I${includedir}/dbus-1.0 -I${libdir}/dbus-1.0/include

因此,例如,在 Manjaro 上,您会得到:

pkg-config --cflags dbus-1
-I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include

在 arm debian 上你会得到:

pkg-config --cflags dbus-1
-I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include

如已回答 ,如果您使用的是 CMake,只需添加

target_include_directories(ProjectName PRIVATE /usr/lib/x86_64-linux-gnu/dbus-1.0/include/ /usr/include/dbus-1.0/)
target_link_libraries(ProjectName PRIVATE dbus-1)
add_executable 行之后的

行,其中 ProjectName - 是您的项目名称