Ich habe eine Go 1.5-Anwendung, die mit einer C-Bibliothek (GEOS, FWIW) mit cgo bindet. Was ich tun muss, ist es zu verkaufen, damit es letztendlich durch unser kontinuierliches Integrationssystem bereitgestellt werden kann. Das Problem ist, dass ich nicht weiß, wie ich den Linker dazu bringen kann, mit der Bibliothek zu verlinken, sobald sie in den Vendor-Modus gelangt ist. Nach der Ausführung von godep
lautet die Datei mit der cgo-Direktive .../vendor/.../geos.go
. Ich habe ein lib dort aufgenommen in den fünf .so-Dateien von GEOS, und änderte die Präambel der folgenden:Wie liefert man eine Go-Bibliothek mit einer Cgo-Bindung?
/*
#cgo LDFLAGS: -L${SRCDIR}/lib -lgeos_c
#include "geos.h"
*/
import "C"
Dies funktioniert nur bis zu einem Punkt - wenn ich go build
führen Sie es die erste Bibliothek findet aber nicht eine der nachfolgenden Bibliotheken.
/usr/bin/ld: Warnung: libgeos-3.4.2.so, nach Anbieter benötigt/github.com/Paulsmith/gogeos/GEOS/lib/libgeos_c.so, wurde nicht gefunden (versuchen -rpath mit oder -rpath-link)
Wie bekomme ich das Ganze richtig verlinken?