不幸的是,我在为 ARMv6 架构交叉编译 Git 时遇到了困难。
但在开始描述我采取的步骤和输入的命令之前,我应该简要描述一下构建环境:
- 我在 Ubuntu 12.10 64 位上进行交叉编译。
- 交叉编译器安装到
/home/my_name/cctoolchain
(此目录包含bin/
,lib/
等)。
我首先从这里获取 Git 1.8.2 。提取目录后,我运行:
导出 PATH=$PATH:/home/my_name/cctoolchain/bin
我还跑来autoconf
确保它./configure
是最新的。然后我调用./configure
如下:
./configure --prefix=/home/my_name/git-arm --build=x86_64-linux-gnu --host=arm-linux-androideabi
这运行了几秒钟,然后中止:
检查系统是否成功读取 fopen'ed 目录... 配置:错误:在`/home/my_name/git-1.8.2'中: 配置:错误:交叉编译时无法运行测试程序
我打开configure.ac
并删除了 806-825 行,禁用了测试。之后,出于类似的原因,我还不得不删除第 806-839 行。
至此,./configure
脚本就可以完成了。然后我兴奋地跑去make
构建 Git,又过了一会儿,遇到了这个错误:
fetch-pack.c:在函数“fetch_pack”中: fetch-pack.c:928:16:错误:“struct stat”没有名为“st_mtim”的成员 make: *** [fetch-pack.o] 错误 1
不知何故,我觉得我“做错了”。这听起来应该比手动从configure.ac
. 我错过了什么?