分享

编译并安装FUSE - dengke

 张金富 2011-06-21
FUSE是用户空间文件系统的简称,使用Fuse,您可以在用户空间创建功能完备的文件系统,而无需具备内核编程的知识。目前的Linux发行版本大多都默认安装了FUSE,不过今天我们要下载最新的源代码进行安装。

  1) 下载最新的源码包(fuse-2.8.3.tar.gz),解压“tar xvf fuse-2.8.3.tar.gz”,进入目录“cd fuse-2.8.3”;

  2) 按部就班地首先“./configure”,然后“make”,接着“make install”,最后“modprobe fuse”加载内核模块fuse.ko;

  3) 切换到example目录下“cd example”,编译fusexmp.c测试一下是否安装成功:

[root@localhost example]# gcc -Wall `pkg-config fuse --cflags --libs` fusexmp.c -o fusexmp
Package fuse was not found in the pkg-config search path.
Perhaps you should add the directory containing `fuse.pc'
to the PKG_CONFIG_PATH environment variable
No package 'fuse' found
在包含自 /usr/local/include/fuse/fuse.h:26 的文件中,
                 从 /usr/local/include/fuse.h:9,
                 从 fusexmp.c:22:
/usr/local/include/fuse/fuse_common.h:32:2: 错误:#error Please add -D_FILE_OFFSET_BITS=64 to your compile flags!

  根据提示信息,我们重新加入参数重新编译:

[root@localhost example]# gcc -Wall `pkg-config fuse --cflags --libs` -D_FILE_OFFSET_BITS=64 fusexmp.c -o fusexmp
Package fuse was not found in the pkg-config search path.
Perhaps you should add the directory containing `fuse.pc'
to the PKG_CONFIG_PATH environment variable
No package 'fuse' found
/tmp/ccKPr0PM.o: In function `main':
fusexmp.c:(.text+0x726): undefined reference to `fuse_main_real'
collect2: ld 返回 1

  事情发展到如此地步,凭我的知识已经是无法再向前迈步了。俗话说的好,苦海无边回头是岸,只好修改参数重新编译FUSE。

  1)卸载上面安装的fuse:“rmmod fuse”,“make uninstall”,“make clean”;

  2)指定“/usr”为安装目录重新安装:“./configure --prefix=/usr”,“make”,“make install”;

  3) 加载fuse.ko模块“modprobe fuse”,然后在切换到example目录下编译fusexmp.c。

  结果是成功的,没有提示认识错误信息。注意,FUSE的第一次是编译安装是成功的,因此fusexmp.c编译失败一定是少加了什么编译参数或目录设置而造成的,仔细看看Makefile文件应该可以解决问题。今天天气太冷,就偷个懒。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多