我正在为 Go 中的 C 库编写 Go 包装器。问题是,C 库在许多 Linux 发行版上不可用,所以我想要一个解决方案,我“去获取 github.com/me/mylibrary”不需要任何人安装该库。
一种解决方案是将库的源代码添加到子目录中。然后,当我的项目使用 go get 构建时,我也需要自动构建这个库。但我不知道如何实现自动化。
或者,我可以有一个脚本来下载源代码,提取并构建它
但我不知道如何将这些构建步骤与 go build 工具联系起来。
链接静态库也不是最简单的。
#cgo linux LDFLAGS: ./MyLib/lib/libMyLib.a -lstdc++ -lm -lX11
只要我从我的库构建就可以工作,但是一旦我想从另一个项目构建,相对路径就来自该项目而不是来自我的库,所以它失败了。