当前位置:  开发笔记 > 运维 > 正文

在32位Debian Squeeze下编译的AC程序会在我朋友的64位上导致段错误

如何解决《在32位DebianSqueeze下编译的AC程序会在我朋友的64位上导致段错误》经验,为你挑选了1个好方法。

不久前,我已经安装了Debian,并在朋友的帮助下对其进行了配置.
昨天我已经下载了GCC 4.4,我创建了一个简单的程序来测试它.
这是代码:

#include 

int 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.cbash 编译它.然后我试图运行生成的二进制文件,它就像我想要的那样工作.然后我将二进制文件发送给我的朋友,以便在他的PC上进行测试.当他试图运行它时,他收到了一个分段错误消息,该程序无效.
他还使用Debian,他的内核版本与mine(2.6.32-5-686)非常相似.唯一的区别是他的内核是amd-64(他拥有64位处理器,而我的是32位).
为什么会这样?这是否意味着64位Linux用户将无法运行我的32位程序?如果是这样,我可以用一种让他们运行它的方式编译它吗?
请注意,我对Linux并不熟悉.



1> Orbit..:

他可能需要一个chroot.

apt-get install ia32-libs 

应该适用于大多数情况.

请参阅"使用IA32 chroot运行32位应用程序" http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html#id292205

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有