购物网站开发背景需求,用ps做个人网站界面,alexa排名软件,沈阳免费建网站Leveldb是一个C库#xff0c;它有提供标准的C接口#xff0c;头文件在include/leveldb/c.h中 levigo是leveldb 的一个go wrapper,它主要基于Leveldb中inlude/leveldb/c.h提供的方法做二次开发 开发过程#xff0c;以添加一个简单的计算功能为例#xff1a; 修改leveldb源码… Leveldb是一个C库它有提供标准的C接口头文件在include/leveldb/c.h中 levigo是leveldb 的一个go wrapper,它主要基于Leveldb中inlude/leveldb/c.h提供的方法做二次开发 开发过程以添加一个简单的计算功能为例 修改leveldb源码 在include/leveldb/c.h中添加以下声明 extern int andre_add(const int a,const int b); 在db/c.cc中添加andre_add对应的实现 int andre_add(const int a,const int b) {return (a b)*3;
} 重新编译安装Leveldb源码 funfun:~/workspace/study/leveldb/leveldb$ make clean makefunfun:~/workspace/study/leveldb/leveldb$ sudo cp libleveldb.a libleveldb.so.1.12 /usr/lib/funfun:~/workspace/study/leveldb/leveldb$ sudo cp -r include/leveldb /usr/include/ 至此Leveldb库安装完毕。 Levigo二次开发 为了方便开发我将https://github.com/jmhodges/levigo fork了一份到自己的帐号下 执行以下操作将levigo安装到本地 go get github.com/AndreMouche/levigo/ 在$GOROOT下找到对应的源码这里以修改options.go为例,在其中添加以下function以调用andre_add func Andre_add(a,b int) int {pa : C.int(a)pb : C.int(b)return int(C.andre_add(pa,pb))
} 保存后,重新编译该代码 funfun:~/software/go/go/bin/src/github.com/AndreMouche/levigo$ go clean github.com/AndreMouche/levigo
funfun:~/software/go/go/bin/src/github.com/AndreMouche/levigo$ go build github.com/AndreMouche/levigo 编译通过向github提交修改文件 至此在go中便可调用levigo.Andre_add()了。 转载于:https://www.cnblogs.com/AndreMouche/p/3284645.html