一种方法是也静态地构建那些依赖项,并使用
PKG_CONFIG_PATH指向您自己的副本的指针,以便所有内容都被静态链接。那应该使CMake选择静态版本。
但是,如果目标是避免依赖用户安装的库而不是使所有内容都成为单个可执行文件,则建议您提供这些库并使用加载路径来确保它们已被加载。随着
gcc你通过
-Wl,-R设置在二进制文件本身的搜索路径,这样你就可以设置到哪里寻找你与你的应用程序出货共享库。有了
go它,您似乎可以
-r(通过
-ldflags或手动)传递给链接器以执行相同的操作。
libgit2相当可扩展,因此还有第三种选择,那就是在Go中实现TLS流和SSH传输,并将它们插入libgit2版本中而不支持它们。但是,这是大量的工作。



