我在 vim.org 的 ftp 上偶然发现了已停止使用的 bzip-0.21,这是值得尊敬的,所以我认为它很好。
然而 1996 年的代码将无法再用今天的 GCC 进行编译。
是否有机会让它在需要为armhf编译二进制文件的现代设备上运行?
只是旧压缩算法的爱好者。当我进行测试时,vim 存档中的 .tar.gz 中的 Windows 二进制文件实际上生成的文件比 bzip2 更小。对于这么旧的代码来说,这是相当令人印象深刻的。
问候礼物
编辑:错误是对“minUInt32”的未定义引用在我的例子中,gcc 无法识别 c 文件本身内部的引用。
答案1
通过从台式电脑交叉编译解决:
得到要求
sudo apt-get install build-essential g++-arm-linux-gnueabihf gdb-multiarch -y
构建目标代码并编译
ran@compilestation:~$ arm-linux-gnueabihf-gcc -O3 -g3 -Wall -c -o -fPIC "bzip.c"
ran@compilestation:~$ arm-linux-gnueabihf-gcc -o "bzip1" bzip1.o
验证你的工作
ran@compilestation:~$ file bzip1
bzip1: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=4cf52bccf817e031556bab923696f4677b00d29b, not stripped
(感谢Stephen的精神支持)