【发布时间】:2016-10-17 01:40:00
【问题描述】:
我有一个使用 cgo 与 C 库(GEOS、FWIW)绑定的 Go 1.5 应用程序。我需要做的是供应商,以便最终可以通过我们的持续集成系统进行部署。问题是我不知道如何说服链接器在出售后与库链接。运行godep后,带有cgo指令的文件为.../vendor/.../geos.go。我在那里创建了一个 lib 目录,从 GEOS 中添加了五个 .so 文件,并将序言更改为以下内容:
/*
#cgo LDFLAGS: -L${SRCDIR}/lib -lgeos_c
#include "geos.h"
*/
import "C"
这只能在一定程度上起作用 - 当我运行 go build 时,它会找到第一个库,但找不到任何后续库。
/usr/bin/ld: 警告:libgeos-3.4.2.so,vendor/github.com/paulsmith/gogeos/geos/lib/libgeos_c.so 需要,未找到(尝试使用 -rpath 或 -rpath -链接)
如何让整个内容正确链接?
【问题讨论】: