为armhf编译git - 遇到" libcrypto.so.1.0.0:没有可用的版本信息(git需要)"

时间:2016-07-24 17:04:20

标签: git openssl arm cross-compiling libcrypto

我正试图让git在我的armhf基于BuildRoot的系统上运行。由于git不在BuildRoot中,我转到了我的其他基于Debian的armhf系统,并使用" make prefix = / usr CFLAGS =" $ {CFLAGS} -static-libgcc" (我想要一个静态二进制文件)。然后,我将这个二进制文件和/ usr / share / git-core中的文件存档,并在armhf基于BuildRoot的系统上取消存档。

现在,当我尝试克隆回购时。通过https在目标系统上我收到此错误:

git: /usr/lib/libcrypto.so.1.0.0: no version information available (required by git)
Cloning into 'test_repo'...
fatal: Unable to find remote helper for 'https'

我的armhf构建系统和目标似乎都有相同版本的libcrypto.so(即1.0.0),所以我无法看到版本方面的问题。有人有任何建议让它发挥作用吗?

1 个答案:

答案 0 :(得分:1)

  1. 如果您想拥有静态二进制文件,请使用-static 链接器选项(即LDFLAGS)。
  2. "没有可用的版本信息"在大多数情况下,这不是一个大问题,只是您的libcrypto图书馆没有可用的符号版本信息(如VERDEF ELF部分中所述)。
  3. 你真正的问题是你的git没有git-remote-https辅助程序(通常只是git-remote-http的符号链接),它应该位于/usr/lib/git-core/。< / LI>
  4. 但是从what I see开始,已经有一个针对BuildRoot的git包,所以最好的办法就是使用它。