2016-06-15 45 views
1

我有一個使用cgo與C庫(GEOS,FWIW)綁定的Go 1.5應用程序。我需要做的是提供它,以便最終通過我們的持續集成系統進行部署。問題是,我不知道如何說服連接器與庫存鏈接後,一旦它的售價。在運行godep之後,帶有cgo指令的文件是.../vendor/.../geos.go。我創建了一個lib目錄中有,在從GEOS五個.so文件添加,並改變了序言如下:你如何用Cgo綁定來供應Go庫?

/* 
#cgo LDFLAGS: -L${SRCDIR}/lib -lgeos_c 
#include "geos.h" 
*/ 
import "C" 

這僅適用於一個點 - 當我運行go build它找到的第一個庫,但不任何連續的庫。

在/ usr/bin中/ LD:警告:libgeos-3.4.2.so,由供應商需要/ github.com/paulsmith/gogeos/GEOS/lib中/ libgeos_c.so,沒有發現(嘗試使用-rpath或-rpath-link)

如何讓整個事情正確鏈接?

回答

-1

我下面的反饋下線了:

低C級的依賴,就像在堆棧溢出的CGO綁定提到的是超級棘手,且難以供應商,你可以想像。這就是爲什麼在過去我簡單地通過在本地或CI框上構建我的二進制文件(linux目標文件)並推送使用二進制buildpack或我已經構建了一個Docker映像以及我的應用程序的二進制文件。

換句話說,不要做我的建議。只是以舊式的方式來建造它。

相關問題