为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
繁星点点滴滴 2021-11-29 16:41:54
任何人都可以就我如何打包使用 git2go、libssl 和 libssh2 的 GO 程序提供一些建议(或资源),以便它不需要最终用户单独安装这些库?我只针对 Linux 发行版(如果重要的话)
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

一种方法是静态构建这些依赖项,并使用PKG_CONFIG_PATH指向您自己的副本的点,以便所有内容都静态链接。这应该让 CMake 选择静态版本。

但是,如果目标是避免依赖于用户安装的库,而不是使所有内容都成为单个可执行文件,我会建议传送库并使用加载路径来确保它们被加载。随着gcc你通过-Wl,-R设置在二进制文件本身的搜索路径,这样你就可以设置到哪里寻找你与你的应用程序出货共享库。有了go它看起来像你可以传递-r给连接器(通过-ldflags或手动)做同样的事情。

libgit2 具有相当的可扩展性,因此还有第三种选择,即在 Go 中实现 TLS 流和 SSH 传输,并将它们插入不支持这些的 libgit2 版本中。然而,这是大量的工作。


查看完整回答
反对 回复 2021-11-29
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信