64位的centos7 下编译32位的c/c++程序
32位的编译环境设置
- 编译32位的c/c++程序,必须需要 C 和 C++ 库(glibc 和 libstdc++)以及 GCC 库(libgcc)的 32 位版本,操作如下:
$ yum install libstdc++-*.i686
$ yum install glibc-*.i686
$ yum install libgcc.i686
- 如果用到了第三方的库,还需要安装32位的兼容库,以下两个操作可以解决大多数的32位程序依赖,如果不能解决就只能具体问题具体分析了
yum install xulrunner.i686
yum install ia32-libs.i686 glibc.i686 vim*
设置生成的程序版本
方法一:使用gcc编译时增加参数
32位版:加上 -m32 参数,生成32位的代码。
64位版:加上 -m64 参数,生成64位的代码。
debug版:加上 -g 参数,生成调试信息。
release版:加上 -static 参数,进行静态链接,使程序不再依赖动态库。加上 -O3 参数,进行最快速度优化。加上-DNDEBUG参数,定义NDEBUG宏,屏蔽断言。
方法二:修改makefile代码
在makefile文件中搜索字段CFLAGS,在CFLAGS字段后加 “-m32”。
CC=gcc
CFLAGS=-g -m32
其实,修改makefile代码和方法一是一个道理.
验证生成的程序是否是32位的
使用“file”命令
file xxx
xxx 表示查看的文件。
本文详细介绍了在64位CentOS系统上设置32位编译环境的方法,包括安装32位库,通过gcc编译器添加-m32参数,修改makefile,以及验证生成程序类型的步骤。
11万+

被折叠的 条评论
为什么被折叠?



