git2go 与 libssl 和 libssh2 在单个二进制文件中

任何人都可以就我如何打包使用 git2go、libssl 和 libssh2 的 GO 程序提供一些建议(或资源),以便它不需要最终用户单独安装这些库?

我只针对 Linux 发行版(如果重要的话)


繁星点点滴滴
浏览 145回答 1
1回答

慕后森

一种方法是静态构建这些依赖项,并使用PKG_CONFIG_PATH指向您自己的副本的点,以便所有内容都静态链接。这应该让 CMake 选择静态版本。但是,如果目标是避免依赖于用户安装的库,而不是使所有内容都成为单个可执行文件,我会建议传送库并使用加载路径来确保它们被加载。随着gcc你通过-Wl,-R设置在二进制文件本身的搜索路径,这样你就可以设置到哪里寻找你与你的应用程序出货共享库。有了go它看起来像你可以传递-r给连接器(通过-ldflags或手动)做同样的事情。libgit2 具有相当的可扩展性,因此还有第三种选择,即在 Go 中实现 TLS 流和 SSH 传输,并将它们插入不支持这些的 libgit2 版本中。然而,这是大量的工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go