2017-10-08 76 views
1

我叫从C++源编译的静态库。但是,这是累人写依赖库和我发现的libtool刚做的非常好,例如,我的libfoo.la都会有这样的事情:我可以在cgo中使用libtool输出吗?

dependency_libs=‘ /Users/roger/example/lib/bar/libbar.la -lm’ 

现在我打电话golang libfoo.a,但依赖性可能很复杂。 libfoo.a取决于libbar.a,libbar.a取决于libhaha.a当我构建golang时,我可以使用libfoo.la吗?(或某种方式使libfoo.a及其所有的依赖到一个LIB文件?)

回答

1

我可以利用libfoo.la的时候我建立golang?

否Go有它自己的构建系统,它不知道libtool档案,只知道系统上可用的标准静态/共享库。

现在我在golang中调用libfoo.a,但依赖关系可能很复杂。

这就是它如何与静态库。这是使用共享库的一个原因。共享库在Go中也不是没有问题,但有点可管理。

libfoo.a取决于libbar.a,libbar.a取决于libhaha.a。

不一样的东西:

package foo 


// #cgo CFLAGS: -I... 
// #cgo LDFLAGS: -L... -lfoo -lbar -lhaha -lm 
// #include ... 
import "C" 
... 

工作?

或者某种方式使libfoo.a及其所有的依赖项成为一个lib文件?

是的,这是可能的,但另一个问题。

相关问题