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

相关推荐
半梦半醒*21 分钟前
Prometheus监控物理服务器
linux·运维·服务器·centos·prometheus
mzhan01724 分钟前
Linux: network: 拔插网线 interface down/up测试的痛点
linux·服务器·测试·破坏性测试
黑马金牌编程26 分钟前
如何判断一台服务器是否负载过高?
linux·运维·性能调优·性能分析·故障排查
小锋学长生活大爆炸26 分钟前
【知识】Linux将多条指令合并为一条执行
linux·运维·ubuntu
心灵宝贝4 小时前
CentOS 7 安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 的详细步骤
linux·运维·centos
mjx65304 小时前
windows查看端口使用情况,以及结束任务释放端口
linux
九皇叔叔5 小时前
Linux Shell 函数:从定义到实战,让脚本更高效
linux·运维·chrome·shell
璞致电子8 小时前
fpga开发板ZYNQ 璞致 PZ7010/7020 邮票孔核心板简介-ZYNQ7000系列小系统学习板
linux·嵌入式硬件·学习·fpga开发·fpga·fpga开发板·xilinx开发板
第四维度48 小时前
【全志V821_FoxPi】9-2 Linux IIC驱动MPU6050
linux·传感器·tina·mpu6050·v821
mjx65309 小时前
PyTorch快速入门
linux