dbus 标头的符号链接

Dar*_*enW 6 programming dbus c symbolic-link

无法编译的东西的源代码有一行,#include <dbus/dbus.h> 但在现实生活中,头文件处于/usr/include/dbus-1.0/ 类似的情况下存在于dbus-c++包中。

为什么 Ubuntu 不提供/usr/include/dbus指向dbus-1.0目录的符号链接?这是dbus包中的错误吗?如果有意,它的目的是什么?

自己添加符号链接是否正确?

(更改源是不切实际的 - 有很多文件,它们需要匹配其他人拥有的文件。)

更新:

好吧,我完全误解了这种情况,尽管它仍然归结为一个我认为应该通过符号链接解决的问题。#include声明中所指的dbus目录是/usr/include/dbus-1.0/. 真正的问题是文件dbus-arch-deps.h似乎丢失了,但实际上存储在奇怪的位置/usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/。那么现在,为什么 Ubuntu 不提供一个符号链接/usr/include/dbus-1.0/dbus,或者实际上将它存储在那里?

小智 6

dbus 包含路径旨在通过调用来检索

pkg-config dbus-1 --cflags
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式使用 dbus 编译程序

cc dbus-example.c -o dbus-example $(pkg-config dbus-1 --cflags)
Run Code Online (Sandbox Code Playgroud)

或者

make dbus-example CFLAGS+="$(pkg-config dbus-1 --cflags)"
Run Code Online (Sandbox Code Playgroud)

dbus 标头包含在该行中

#include <dbus/dbus.h>
Run Code Online (Sandbox Code Playgroud)

这种“奇怪的包含路径”增加了未来版本的 dbus 或其他架构的灵活性。