FUSE 程序的编译
来源:互联网 发布:什么是线性优化 编辑:程序博客网 时间:2024/05/17 23:44
FUSE是一个用户态的文件系统框架,使用这个框架设计一个文件系统很简单,由于是初学,就直接到了example文件夹下,看了看文件内的编译命令是
Gcc -Wall `pkg-config fuse --cflags --libs` hello.c -o hello
自己一试,发现完全不行,报错是FUSE_MAIN_REAL()找不到实现,找了半天发现有一篇帖子实际上这个函数的实现在helper.c中,并且被编译到了相应的链接库中。究其原因,其实是gcc的命令行参数传入的顺序问题。`pkg-config fuse --cflags --libs`这个东西,可以把它理解成一个在fuse安装时定义的变量,可以在终端中输入echo `pkg-config fuse --cflags --libs`即可看到这个变量展开之后所表示的gcc的命令行参数,应该是这种形式“-D_FILE_OFFSET_BITS64 -I/usr/includefuse -pthread -lfuse -lrt=”。其中包含了一个-lfuse命令,它的作用是链接fuse相应的链接库,也就是告诉编译器去哪里能找到fuse_main_real()的实现。事实上gcc要求链接库的命令行参数要放在源代码文件之后,所以将上面的命令改成:
Gcc -Wall hello.c -o hello `pkg-config fuse --cflags --libs`
成功,其实这个错误我找了很久,看了很多外国的网站人家都解决不了(还是人家没这种问题不得而知),国人还是有很多大牛的。
- FUSE 程序的编译
- FUSE的程序的编译
- fuse挂载hadoop2.0.0文件系统hdfs到本地(关于libhdfs和fuse-dfs的编译)
- fuse程序挂载时nonempty问题的理解和解决
- fuse程序挂载时nonempty问题的简单理解和解决
- hadoop 2.0.0 fuse 安装 libhdfs fuse-dfs 编译
- fuse的direct_io
- fuse的作用
- fuse
- fuse
- 集成FUSE的程序在后台运行后,创建的多个线程被自动杀死!
- hadoop 2.2.0 fuse 编译及安装
- fuse-j 在fuse3.1.1版本编译
- fuse的安装与使用
- fuse的一些理解-备忘
- fuse的安装与使用
- Fuse文件系统 的安装使用
- linux fuse文件系统在 android fuse sdcard的 运用
- 从页面输入框提交的数据超过数据库字段引发的异常
- 态度决定高度
- 使用堆查找前K个最大值兼谈程序优化(中)
- python中的迭代器与生成器 .
- VC 字符串函数
- FUSE 程序的编译
- 一直报无法找到网页 没加$ 郁闷了一下午才解决的
- 诊断和解决错误ORA-04031
- 连接池 连接无法自动关闭解决方法
- Inline Hook MessageBoxA
- 无向图和有向图关于连通性的tarjan算法
- USB接口图示
- fedora的配置[转]
- hibernate 之 关系映射