FUSE介绍:
用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs和lustre使用FUSE实现。
Linux用于支持用户空间文件系统的内核模块名叫FUSE,FUSE一词有时特指Linux下的用户空间文件系统。
在我个人看来,fuse就是一层虚构的中间层,承接上层指令,扩充下层操作,达到所谓的"欺骗"行为。主要用途在于一些比较苛刻的地方,比如必须以某种形式返回给上层命令指定的值,才能继续正常交互。我本次主要解决的是一个文件名后缀的问题,如果直接返回,会没有后缀,导致程序无法继续正常进行;所以我在这个中间模拟一层上层指令的响应,使后缀名能够正常返回给上层。That's all。
1.下载fuse-2.9.0:
Download (HTTP):
http://downloads.sourceforge.net/fuse/fuse-2.9.0.tar.gz
2.在虚拟机里面编译库:
tar -zxvf fuse-2.9.0.tar.gz
./configure --host=mipsel-linux --prefix=/opt/brcm/fuse-2.9.0-release/
make&&make install
modprobe fuse
3.在板子上加入动态库的支持:
// 把虚拟机里面的库拷贝到PC上:
cp fuse-2.9.0-release/lib/libfuse.so.2.9.0 /mnt/hgfs/bcm/distrib/
// 把PC上的库拷贝到板子上:
cp libfuse.so.2.9.0 /usr/local/lib/
cd /usr/local/lib/
ln -sf libfuse.so.2.9.0 libfuse.so.2
4.在编译程序时,要加入:
CFLAGS += -I/***/fuse-2.9.0-release/include/
LFLAGS += -L/***/fuse-2.9.0-release/lib/ -lfuse
(其中 *** 代表你编译fuse之后库所存放的目录绝对路径)。
5.如果程序编译出错:
fuse_common.h:33:2: error: #error Please add -D_FILE_OFFSET_BITS=64 to your compile flags!
解决方案一:
在你的程序Makefile编译选项里面加入:
-Wall `pkg-config fuse --cflags --libs` -D_FILE_OFFSET_BITS=64
比如我的:$(CC) -o $(TARGET) $(APPOBJ) $(LFLAGS) $(CFLAGS)
修改成: $(CC) -Wall `pkg-config fuse --cflags --libs` -D_FILE_OFFSET_BITS=64 -o $(TARGET) $(APPOBJ) $(LFLAGS) $(CFLAGS)
解决方案二:
makefile中加入红色字体部分:
CFLAGS += -I/***/fuse-2.9.0-release/include/ -D_FILE_OFFSET_BITS=64 -D_REENTRANT
LFLAGS += -L/***/fuse-2.9.0-release/lib/ -lfuse
编译时直接:$(CC) -o $(TARGET) $(APPOBJ) $(LFLAGS) $(CFLAGS)即可。
分享到:
相关推荐
用户空间文件系统(Filesystem in Userspace),是Linux 中用于挂载某些网络空间,如SSH,到本地文件系统的模块,在SourceForge上可以找到相关内容。
本文档描述的是编译fuse-dfs的过程,快下载吧!
CDH hadoop-fuse-dfs的安装指导,是我在工作过程中安装步鄹的总结。
FUSE-3.6X10 FUSE-4.5X8-SMD 保险丝PCB封装库(ALTIUM 2D 3D视图库): Component Count : 9 Component Name ----------------------------------------------- FUSE-2.6X6.1-SMD FUSE-3.6X10 FUSE-3.6X10H FUSE-4.5...
fuse-sshfs-2.5-1.el7.rf.x86_64.rpm包 下载后使用 rpm -ivh fuse-sshfs-2.5-1.el7.rf.x86_64.rpm使用
fuse-libs-2.9.2-7.el7.x86_64.rpm rpm包 安装后执行rpm -ivh fuse-libs-2.9.2-7.el7.x86_64.rpm 可直接使用
fuse-2.9.3.tar.gz
linux mount u盘 exfat,CentOS 挂载 exfat 和 FAT32格式的U盘
fuse的最新版本,fuse是用户自己空间上的文件系统,
离线安装包,亲测可用
离线安装包,亲测可用
fuse-2.7.4.tar.gz fuse-2.7.4.tar.gz
基于fuse的exfat库移植--Linux交叉编译通用 解压可用
fuse-ext2-0.0.7,Linux下挂载ntfs文件系统
离线安装包,亲测可用
离线安装包,亲测可用
fuse2.7.4模块和ntfs-3g 2011.4.12帮助linux挂载ntfs格式的u盘。主要用于linux操作系统。
官方离线安装包,亲测可用
fuse-3.2.2.tar.xz 用户空间文件系统(Filesystem in Userspace),是Linux 中用于挂载某些网络空间,如SSH,到本地文件系统的模块,在SourceForge上可以找到相关内容。
fuse-sshfs-2.5-1.el7.x86_64.rpm