任何人都可以就我如何打包使用 git2go、libssl 和 libssh2 的 GO 程序提供一些建议(或资源),以便它不需要最终用户单独安装这些库?我只针对 Linux 发行版(如果重要的话)
1 回答
慕后森
TA贡献1802条经验 获得超5个赞
一种方法是静态构建这些依赖项,并使用PKG_CONFIG_PATH
指向您自己的副本的点,以便所有内容都静态链接。这应该让 CMake 选择静态版本。
但是,如果目标是避免依赖于用户安装的库,而不是使所有内容都成为单个可执行文件,我会建议传送库并使用加载路径来确保它们被加载。随着gcc
你通过-Wl,-R
设置在二进制文件本身的搜索路径,这样你就可以设置到哪里寻找你与你的应用程序出货共享库。有了go
它看起来像你可以传递-r
给连接器(通过-ldflags
或手动)做同样的事情。
libgit2 具有相当的可扩展性,因此还有第三种选择,即在 Go 中实现 TLS 流和 SSH 传输,并将它们插入不支持这些的 libgit2 版本中。然而,这是大量的工作。
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消