由于最近py在机器学习上比较牛x,但golang居然没有相应牛x的机器学习库。本人虽然这两种语言都熟悉,但就是不爽py的一些语法,所以打算使用golang做一部分库,然后py调用。。。网上有很多py调用golang的方法,基本原理都是cgo来弄,如下面:
https://studygolang.com/articles/4796
然而,本人是在osx下的,上面这东西估计只能Linux了。在osx下,py直接报错。结果,折腾了好几天,然后发现据说,cgo在osx下有点bug,编译出来的东西会有问题。所以,如果用osx的同学,请用下面命令来编译py调用的so库:
go build -ldflags=-s -buildmode=c-shared -o xxx.so xxx.go
xxx.so就是编译的静态库,xxx.go就是go的源码了。上面命令关键地方(对于osx来说)就是 -ldflags=-s,必须要加这个,否则不管是编译静态库,还是可执行文件,都必定会崩。。。。 -buildmode=c-shared就是让go编译so了。
以上。。。。。(还有一个py回调go的问题,正在研究中。。。网上虽有教程,但说不明白,还得研究一下。。。。)