本文并不说明怎样编写一个xlator。在glusterfs3.6.1下验证成功

目标在glusterfs-3.6.1/xlators/debug/下建立一个自己的xlator库并能够统一安装到系统文件夹下

一、           解压glusterfs3.6.1.tar.gz

tar zxvf glusterfs3.6.1.tar.gz

cd glusterfs3.6.1

二、           创建自己定义xlator文件夹testX

mkdir -p xlators/debug/testX/src/

三、           改动configure.ac文件

vim configure.ac

添加下面语句在AC_CONFIG_FILES中

xlators/debug/testX/Makefile

xlators/debug/testX/src/Makefile

四、           改动父文件夹中的Makefile.am

cd xlators/debug/

vim Makefile.am

在SUBDIRS变量的最后添加文件夹名testX

五、           进入testX文件夹,创建Makefile.am文件

cd testX

vim Makefile.am

文件内容例如以下:

SUBDIRS = src

CLEANFILES =

六、           进入src文件夹,创建Makefile.am文件

cd src

vim Makefile.am

文件内容例如以下:

xlator_LTLIBRARIES = testX.la

xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testX

 

testX _la_LDFLAGS = -module -avoid-version

 

testX _la_SOURCES =
testX.c

testX _la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la

 

noinst_HEADERS = testX.h

AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src

 

AM_CFLAGS = -Wall $(GF_CFLAGS)

 

CLEANFILES =

说明:

要上图中的testX_la*中的前缀testX必须和xlator_LTLIBRARIES的文件名称前缀一致

xlator_LTLIBRARIES后为要生成的库的名字

xlatordir后为存放库的路径,上图中将testX.so库存放在安装文件夹下的xlator的testX文件夹下

testX_la_SOURCES后跟.c文件列表

noinst_HEADERS后跟头文件列表

七、           创建自己的testX.c和testX.h文件

八、           编译安装

编辑完毕后,从新进入到glusterfs3.6.1文件夹下,执行例如以下命令就可以将新的testX文件安装到a安装文件夹下的testX文件夹中

cd ../../../../

./autogen.sh

./ configure

make

make install

九、           改动配置文件增加testX

怎样在gluster的源代码中加入自己的xlator的更多相关文章

  1. 通过ABAP的标准功能,寻找源代码中的字符串

    程序名称: *ABAP_SOURCE_SCAN 查找 作用:通过这个标准程序,可以在系统的源代码中进行字符串的查找!

  2. 【转】如何单独编译Android源代码中的模块--不错

    原文网址:http://blog.csdn.net//article/details/6566662/ 第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命 ...

  3. 把安卓源代码中的system app独立出来,像开发普通app那样开发

          个人建议首先依照android源码的ide/eclipse中的格式化xml和import导入到你编译的eclipse中,假设你编译的android源码是2.3以上的版本号的,建议用JDK6 ...

  4. 如何单独编译Android源代码中的模块

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6566662 第一次下载好Android源代码工 ...

  5. qemu-kvm-1.1.0源代码中关于迁移的代码分析

    这篇文档基于qemu-kvm-1.1.0源代码进行分析. 首先,源代码中的hmp-commands.hx文件里有下面内容: { .name = "migrate",/* 在moni ...

  6. 开源远程控制RealVNC源代码中的通讯协议RFB(远程帧缓冲)(转)

    在网上流传的gh0st3.6源代码中,远程桌面总是存在CPU占用率高和画面更新不及时等问题.于是想到了著名的开源远程控制RealVNC  它采用了远程帧缓存的协议(Remote Frame buffe ...

  7. Gogland配置- 去掉Go源代码中的参数提示

    Gogland处于好意,在Go源代码中对每个参数提示类型,这或许方便大家处理源代码,但是我觉得对于正常阅读源代码反而造成一种负担,我决定去掉这个功能! Gogland默认配置状态,有参数提示: 下面是 ...

  8. [linux] vim在源代码中自动添加作者信息(转载)

    原文出处: http://www.vimer.cn/2009/10/用vim在源代码中添加你的个人信息.html vim ~/.vimrc "进行版权声明的设置 "添加或更新头 m ...

  9. 黑客攻防技术宝典web实战篇:查找源代码中的漏洞习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 列出 3 种可在源代码中找到明确签名的常见漏洞. (a) 跨站点脚本(b) SQL 注入( ...

随机推荐

  1. js获取当前位置

    <!DOCTYPE html><html><head><meta name="viewport" content="initia ...

  2. gdb 基础

    版权:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/gdb.html 1. gdb 调试利器 GDB是一个由GNU开源组织发布的.UN ...

  3. C++中const与constexpr区别

    对于对象来说 const指的是编译期常量和运行时常量,两者并没有区分 constexpr特指编译期常量 对于函数来说 const可以修饰类的成员函数,被修饰的函数在执行期间不会改变对象的值. clas ...

  4. noi.ac NOIP2018 全国热身赛 第二场 T1 ball

    [题解] 可以发现每次推的操作就是把序列中每个数变为下一个数,再打一个减一标记:而每次加球的操作就是把球的位置加上标记,再插入到合适的位置. 用set维护即可. #include<cstdio& ...

  5. 51NOD 2370 奈芙莲的护符

    >>这是原题传送门<< 答案参考来自 http://www.cnblogs.com/sugewud/p/9822933.html 思路:看到取值范围之后,仅有的思路还是暴力

  6. [转]ionic或者angularjs中图片显示压缩问题解决 or 显示较大图片的某一块区域、裁剪显示

    我们知道在html中显示图片一般都是用img控件标签,当然调整大小的也很容易. 但是会出现,特定的img大小,显示一张比较大尺寸的且长宽比例与特定img大小不相符的图片.而导致压缩问题,图片挤压的很严 ...

  7. popup介绍

    一.作用 用于使浏览器自动生成弹窗 二.示例 1.新建Django项目,新建APP:app01, 项目根目录下新建文件夹static 2.静态文件配置,在settings.py中配置static: 3 ...

  8. use-gulp

    参考: https://github.com/Platform-CUF/use-gulp use-gulp 为什么使用gulp? 首先看一篇文章 Gulp的目标是取代Grunt 根据gulp的文档,它 ...

  9. 怎样用JMeter做接口测试?

    本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Appli ...

  10. HDU 5420 Victor and Proposition

    Victor and Proposition Time Limit: 6000ms Memory Limit: 524288KB This problem will be judged on HDU. ...