zoukankan      html  css  js  c++  java
  • centos64位编译32位程序

    test.c

    #include <stdio.h>
    int main()
    {
            printf("sizeof long is %d
    ",sizeof(long));
            return 0;
    }

    64位编译

    [swdn@dev desktop]$ gcc test.c
    [swdn@dev desktop]$ file a.out
    a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
    [swdn@dev desktop]$

    32位编译

    [swdn@dev desktop]$ gcc -m32 test.c

    错误1:缺少32位头文件

    解决方法:

    [swdn@dev desktop]$ yum install glibc.i686

    错误2:再次编译,发现编译成功,链接失败,提示如下错误

    解决方法:

    先查看64位文件版本

    [swdn@dev desktop]$ yum list libgcc
    已加载插件:fastestmirror, refresh-packagekit, security
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    已安装的软件包
    libgcc.x86_64                                                                      4.8.2-8.el6                                                                        @hop5  

    由于yum提供的32版本低于64位的版本,使用yum install libgcc.i686会安装失败,因此需自己下载32位版本进行安装

    下载地址:https://pkgs.org/download/libgcc

    安装libgcc.i686

    [swdn@dev desktop]$ sudo rpm -ivh libgcc-4.8.5-28.el7.i686.rpm

    安装完成后重新编译程序

    [swdn@dev desktop]$ gcc -m32 test.c
    [swdn@dev desktop]$ file a.out
    a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
    [swdn@dev desktop]$ a.out
    sizeof long is 4
    [swdn@dev desktop]$

    显示已经可以编译32位程序了。

  • 相关阅读:
    bzoj4543 长链剖分
    tarjan算法
    uoj36 玛里苟斯 高斯消元做法
    狄利克雷卷积
    斜率优化
    将一个工作簿拆分为多个工作表
    如何制作Excel斜线表头
    逻辑函数(IF函数)
    逻辑函数(AND,OR,NOT)
    Excel中提取英文,数值和编码(LEN函数)
  • 原文地址:https://www.cnblogs.com/mxly/p/9583580.html
Copyright © 2011-2022 走看看