【发布时间】:2016-07-24 17:04:19
【问题描述】:
我正在尝试让 git 在基于 armhf BuildRoot 的系统上运行。由于 git 不在 BuildRoot 中,我转到我的另一个基于 Debian 的 armhf 系统并从那里用“make prefix=/usr CFLAGS="${CFLAGS} -static-libgcc" (我想要一个静态二进制文件)从源代码编译它。然后我将该二进制文件和 /usr/share/git-core 中的文件存档,并在基于 armhf BuildRoot 的系统上取消存档。
现在当我尝试克隆一个 repo 时。通过 https 在目标系统上出现此错误:
git:/usr/lib/libcrypto.so.1.0.0:没有可用的版本信息(git需要) 克隆到“test_repo”... 致命:找不到“https”的远程助手我的 armhf 构建系统和目标似乎都有相同版本的 libcrypto.so(即 1.0.0),所以我看不出版本方面的问题。有人有什么建议可以让它工作吗?
【问题讨论】:
-
"...似乎有相同的版本..." 并没有给你很大的信心——当然你首先要尝试的是跑步与您构建的 exact 相同的库(或相反地构建目标文件系统中的确切库)。要么 libcrypto.so 的两个副本之间存在一些显着差异,要么 Git 有问题,但那是两个完全不同的问题。
-
git将在其配置中静默失败,然后像什么都没发生一样继续前进。回到起点。结帐或解压git。为构建配置git。然后,在配置之后,手动检查config.log是否有错误。您可能会发现其中的 3 或 4 个,特别是如果您通过 cURL 启用了 HTTPS。 -
@Notlikethat :主机系统和目标系统都有 libcrypto 的 1.0.0 版本。主机系统是 beaglebone,目标是使用 buildroot 的自定义系统。在将 beaglebone 库复制到目标之前,我想寻找其他问题。
-
...这是我的观点。它们名义上是相同的版本,但它们实际上是相同的配置吗? “我想尝试通过猜测来诊断问题的原因,然后再尝试一个非常快速且简单的测试,该测试将明确地缩小范围”似乎不是最有效的调试策略。
标签: git openssl arm cross-compiling libcrypto