/usr/include/libgnomevfs
大多数应用程序,包括 gnomevfs 标头本身,都希望文件位于/usr/include/gnome-vfs-2.0/libgnomevfs
.
为什么?我所指的包称为libgnomevfs2。
在 /usr/include/gnome-vfs-2.0/libgnomevfs/gnome-vfs.h` 我们发现:
#include <libgnomevfs/gnome-vfs-acl.h>
#include <libgnomevfs/gnome-vfs-address.h>
#include <libgnomevfs/gnome-vfs-async-ops.h>
#include <libgnomevfs/gnome-vfs-cancellation.h>
...
这意味着即使标题本身也希望文件位于该位置 - 并且包含该文件的任何内容都不会起作用。
我错过了什么,还是这是一个小故障?
安装该软件包
/usr/include/gnome-vfs-2.0
以便它可以与其他版本的 gnome-vfs 共存(例如,想象一下也有/usr/include/gnome-vfs-1.0
可用的)。当一个包需要针对某个版本的 gnome-vfs 构建时,它应该查询pkg-config
以找到安装位置。(这通常是在configure
待编译软件的过程中完成的。)例如:请注意所有
-I
标志的使用,包括-I/usr/include/gnome-vfs-2.0
. 调用的输出pkg-config --cflags
通常会添加到CFLAGS
构建的环境变量中。给定该-I
部分,编译器将能够找到头文件的完整路径,因为它会开始查找/usr/include/gnome-vfs-2.0
然后附加头文件路径libgnomevfs/gnome-vfs-acl.h
,这将解析正确的完整文件路径:/usr/include/gnome-vfs-2.0/libgnomevfs/gnome-vfs-acl.h
.因此,如果软件尚未使用
pkg-config
,您可以尝试将变量 (cflags
和libs
) 传递到configure
调用中:应用程序不应期望标头和库位于固定目录中,而是使用pkg-config获取所需的参数,例如:
pkg-config --cflags gnome-vfs-2.0