zoukankan      html  css  js  c++  java
  • OpenEuler gcc生成32位程序

    OpenEuler gcc生成32位程序

    问题

    由于编程需要,现需在 64位 OpenEuler 操作系统下,生成32位程序。

    OpenEuler的软件包中没有提供 gcc-multilib 的安装。

    检查 cd /usr/include/gnu/

    缺少 stubs-32.h

    解决

    1.在ubuntu中安装 multilib

    Ubuntu 中可以直接通过 apt install gcc-multilib

    2.将 缺少的头文件 复制到openeuler中

    此时再次 编译32位文件会出现

    提示缺少crtn.o crt1.o crti.o -lgcc -lgcc_s -lc

    也就是 libgcc.a libgcc_s.so 这两个文件存在差异

    检查/usr/lib/gcc/x86_64-linux-gnu/7.3.0/果然如此

    3.将 以上文件 从 ubuntu 复制到 openeuler中

    找到 crtn.o crt1.o crti.o 文件路径

    crtn.o crt1.o crti.o 从 ubuntu 复制到 openeuler中

    替换 libgcc.a libgcc_s.so (须保持gcc版本相同,注意备份)

    此方法比较麻烦复杂且改写libgcc文件时可能引起其他错误(不推荐使用)

    方法二

    1.在官网下载multilib包

    x86架构:

    地址:https://packages.debian.org/sid/i386/gcc-multilib/download

    amd64架构:

    地址:https://packages.debian.org/sid/amd64/gcc-multilib/download

    选择任意链接保存即可

    2.在openeuler上安装dpkg包管理工具

    3.使用dpkg安装gcc-multilib

    ps:此方法适用于有对应gcc版本情况

    方法三

    源码编译gcc时 选项配置 enable 32 位编译选项

  • 相关阅读:
    Count on a tree
    图论1 1009
    DP2 1008
    DP1 1008
    NOIP 模拟 1006
    2019 CSP-S 初赛退役记
    9.13——TEST NOIP模拟测试
    [洛谷P2387][NOI2014]魔法森林
    [洛谷P2596][ZJOI2006]书架
    [BZOJ4241]历史研究
  • 原文地址:https://www.cnblogs.com/DKYcaiji/p/15499957.html
Copyright © 2011-2022 走看看