当前位置: 首页 > 面试题库 >

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

孙自怡
2023-03-14
问题内容

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

我只针对Linux发行版(如果有关系)


问题答案:

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

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

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



 类似资料:
  • Python 不仅支持文本文件的读写,也支持二进制文件的读写,比如图片,声音文件等。 读取二进制文件 读取二进制文件使用 ‘rb’ 模式。 这里以图片为例: with open('test.png', 'rb') as f: image_data = f.read() # image_data 是字节字符串格式的,而不是文本字符串 这里需要注意的是,在读取二进制数据时,返回的数据是字

  • 使用称为二进制的数据结构来存储大量原始数据。 二进制文件以比列表或元组更加节省空间的方式存储数据,并且运行时系统针对二进制文件的有效输入和输出进行了优化。 二进制文件以整数或字符串的顺序编写和打印,用小于或大于括号的双精度括起来。 以下是Erlang中二进制文件的示例 - 例子 (Example) -module(helloworld). -export([start/0]). start()

  • 6.4.5 二进制文件与随机存取* 前面介绍的文件处理是针对文本文件的,并且主要是顺序存取文件。本节简单介绍二进 制文件的处理以及文件的随机存取。 二进制文件 任何文件在底层都是字节序列。文本文件的字节可解释成字符的编码:如果是 ASCII 编码,则每个字节表示一个字符;如果是 GBK 编码,则每两个字节表示一个汉字。对文本 文件的处理完全基于这种字符解释。而二进制文件的字节序列表示任意的二进制数

  • 下面是一个上传二进制文件的例子,WebService类的代码如下: package service; import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; import javax.activation.DataHandler; public class 

  • 问题内容: 我在C#.net中有一个程序,它使用写入1个整数和3个字符串到文件中。 现在,我正在用Java编程(对于Android,这是Java的新手),我必须访问以前使用C#写入文件的数据。 我尝试使用和,但无法获得正确的结果。我通常会得到: java.io.UTFDataFormatException:字节21附近的输入格式错误 或者和我得到的是错误的… 这样做的正确方法是什么? 问题答案:

  • 主要内容:C++ ostream::write()方法写文件,C++ istream::read()方法读文件通过《 C++文本文件读写操作》一节的学习,读者了解了以文本形式读写文件和以二进制形式读写文件的区别,并掌握了用重载的 >> 和 << 运算符实现以文本形式读写文件。在此基础上,本节继续讲解如何以二进制形式读写文件。 不过介绍具体的实现方法前,先给读者介绍一下相比以文本形式读写文件,以二进制形式读写文件有哪些好处? 举个例子,现在要做一个学籍管理程序,其中一个重要的工作就是记录学生的学号