У меня есть приложение Go 1.5, которое связывается с библиотекой C (GEOS, FWIW) с помощью cgo. То, что мне нужно сделать, это вендор, чтобы он мог в конечном итоге быть развернут через нашу систему непрерывной интеграции. Проблема в том, что я не знаю, как убедить компоновщика связываться с библиотекой после ее продажи. После запуска godep
файл с директивой cgo - .../vendor/.../geos.go
. Я создал каталог Lib там, добавили в пять .so файлы из GEOS, и изменили преамбулу к следующим:Как вы продаете библиотеку Go с привязкой к Cgo?
/*
#cgo LDFLAGS: -L${SRCDIR}/lib -lgeos_c
#include "geos.h"
*/
import "C"
Эта функция работает только до точки - когда я бегу go build
он находит первую библиотеку, но не любой из последовательных библиотек.
/USR/бен/л.д.: предупреждение: libgeos-3.4.2.so, необходимы поставщику/github.com/paulsmith/gogeos/GEOS/Библиотека/libgeos_c.so, не нашел (попробуйте использовать -rpath или -rpath-link)
Как я могу связать все правильно?