Centos 64位环境下编译32位C程序

在64位平台下,默认编译的是64位程序。如果需要编译32位程序,需要指定gcc 编译选项"-m32"。

但是,在编译过程中,往往会碰到这样的错误:atal error: gnu/stubs-32.h: No such file or directory。

在链接过程中,又经常会碰到这样的错误:

在64位Centos7.9环境下使用gcc编译的 c程序得到的可执行文件默认是64位的,编译命令如下:

gcc test.c -o test64

如果要编译成32位的,可以指定选项"-m32",命令如下:

gcc -m32 test.c -o test32

第一次编译32位程序,很可能有如下错误提示:cannot find -lgcc_s。

这时,我们需要安装两个32位的开发包:

复制代码
yum install -y glibc-devel.i686 libstdc++-devel.i686 

重新编译,看一下编译结果:

file app

app: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ba087918d43fd8d7b5e40f5302685d5ad1802798, not stripped

相关推荐
qq_5425154137 分钟前
Ubuntu 22.04.4 LTS安装ToDesk最新版打不开,无响应?旧版本4.7.2_277版本分享
linux·ubuntu·todesk
火车叼位42 分钟前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
小麦嵌入式1 小时前
FPGA入门(四):时序逻辑计数器原理与 LED 闪烁实现
linux·驱动开发·stm32·嵌入式硬件·fpga开发·硬件工程·dsp开发
皮卡蛋炒饭.2 小时前
传输层协议UDP
linux·网络协议·udp
syagain_zsx2 小时前
Linux指令初识(实用篇)
linux·运维·服务器
王木风3 小时前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js
槑槑紫3 小时前
windows系统装轻量版linux开发
linux·运维·服务器
齐潇宇3 小时前
k8s-Helm管理器
linux·运维·云原生·容器·kubernetes
Irene19913 小时前
(课堂笔记)Linux 基础命令:文件增删改、重命名、压缩等
linux
脆皮炸鸡7554 小时前
库制作与原理~动态链接
linux·开发语言·经验分享·笔记·学习方法