不久前,我已经安装了Debian,并在朋友的帮助下对其进行了配置.
昨天我已经下载了GCC 4.4,我创建了一个简单的程序来测试它.
这是代码:
#includeint main () { int result; printf ("Hello Wor... Linux! This is my %dst program compiled in Debian.\nHow many is 2+2?\n", 1); scanf ("%d", &result); while (result!=4) { printf ("Oh no! You're not going anywhere until you type the correct result! 2+2 is?\n"); scanf ("%d", &result); } printf ("Congrats!\n"); return 0; }
我通过键入gcc-4.4 myfile.c
bash 编译它.然后我试图运行生成的二进制文件,它就像我想要的那样工作.然后我将二进制文件发送给我的朋友,以便在他的PC上进行测试.当他试图运行它时,他收到了一个分段错误消息,该程序无效.
他还使用Debian,他的内核版本与mine(2.6.32-5-686
)非常相似.唯一的区别是他的内核是amd-64(他拥有64位处理器,而我的是32位).
为什么会这样?这是否意味着64位Linux用户将无法运行我的32位程序?如果是这样,我可以用一种让他们运行它的方式编译它吗?
请注意,我对Linux并不熟悉.
他可能需要一个chroot.
apt-get install ia32-libs
应该适用于大多数情况.
请参阅"使用IA32 chroot运行32位应用程序" http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html#id292205