博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows 下 gcc + golang 编译 git2go
阅读量:7032 次
发布时间:2019-06-28

本文共 1367 字,大约阅读时间需要 4 分钟。

hot3.png

最近研究用go语言操作git,除了直接走命令行用os/exec包,还可以使用libgit2的go绑定git2go操作。 但是libgit2是c语言库,go使用cgo连接c程序,需要cgo的支持。总之过程复杂,摔了一路。<!--more-->

安装 gcc 和 pkg-config

首先是安装gccpkg-config(cgo依赖)。gcc编译器推荐用来直接安装,方便快捷,注意不要用绿色版用安装版。pkg-config可以再gnome的中找到。pkg-config安装需要同时下载:

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.ziphttp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.ziphttp://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip

把几个zip包中bin目录的所有exe和dll拷贝到gcc的bin目录。

gcc 编译 libgit2

是Git核心开发包的纯c实现,可以很容易移植和嵌入到别的应用中。官网也提供的它和各种语言的绑定,比如Go语言的。

在Mac上golang编译git2go很容易:

brew install libgit2go get github.com/libgit2/git2go

不过因为git2go和对应的libgit2进度不同,Windows编译的时候问题不断。

直接git clone最新的libgit2代码(错误的),使用cmake编译。具体方法在官方wiki 已经写清楚,照着来就行。唯一注意,把编译参数中的 BUILD_CLAR 关闭,就可以不依赖python。还有,使用文档最后的参数:

cmake . -DCMAKE_INSTALL_PREFIX=C:\libgit2

编译到目录名没有空格的目录,否则git2go的wrapper.c会解析地址错误。建议用cmake-gui查看并设置编译参数。按照wiki编译:

cmake --build .. --target install

编译完成,将C:/libgit2/lib/pkgconfig添加到系统变量PKG_CONFIG_PATH,让pkg-config可以找到libgit2.pc文件。

之后就可以 go get啦。

但是

后来在Github项目的发现,最新的libgit2更新了API破坏了git2go。最终求助mac的同学,查到brew提供的编译好的是0.20版本,就去下载 。

golang 编译 git2go

git2go的编译唯一需要注意就是,将C:/libgit2/lib/pkgconfig添加到系统变量PKG_CONFIG_PATH,让cgo可以访问到.pc文件,读取库相关信息。剩下就是 go get 或者 go install。


个站地址:

转载于:https://my.oschina.net/fuxiaohei/blog/201001

你可能感兴趣的文章
小程序实现元素隐藏
查看>>
vector C++ 详细用法
查看>>
09面向对象基本概念
查看>>
Aspose.Cells操作说明中文版下载/Aspose.Cells.dll(for .net)下载 /Aspose C# 导出Excel 实例...
查看>>
HCIA-Storage:第一章存储前沿与发展趋势
查看>>
【HNOI2018】排列
查看>>
小X的质数 NOIP模拟赛 魔改线性筛素数
查看>>
kafka笔记9(监控)
查看>>
js 继承
查看>>
快速理解聚合根、实体、值对象的区别和联系
查看>>
小程序文档
查看>>
wp7三种图标大小配置
查看>>
HTTP Status 404(The requested resource is not available)
查看>>
iOS开发如何快速成长?
查看>>
Selenium学习(13) unittest断言方法
查看>>
QQ分享-定制分享卡片
查看>>
DataTable的用法
查看>>
17_服务器提权
查看>>
Android Manifest 设置app默认启动的Activity
查看>>
MySQL表分区
查看>>