2017-10-08 104 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文件?

是的,這是可能的,但另一個問題。

相關問題