为什么两个可执行文件显示不同的 Linux 版本。在 chroot 环境下进行交叉编译时。
GNU/Linux 3.6.3、
GNU/Linux 2.6.26、
Hello world 程序输出。
ignite@ignite:~/sbox2/rootfs/rfs-raspbian/home/pi$ file abc
abc: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.6.3, not stripped
我的服务器程序输出
/vscp/daemon/linux$ file vscpd
vscpd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x3f673b6fdb44e8aae68e278e70f9e020d225d794, not stripped
答案1
我的第一个猜测是它们是针对不同的动态库编译的。发出“readelf -l”应该会显示它们是针对哪个加载器编译的。