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 或其他架构的灵活性。