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 - 是您的项目名称
我在我的程序中使用了 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
如已回答
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 - 是您的项目名称