永发信息网

64位linux编译32位程序

答案:3  悬赏:50  手机版
解决时间 2021-12-01 23:56
64位linux编译32位程序
最佳答案
在64位的Linux下,gcc 编译 32 位程序需要添加参数 -m32 ,ld需要添加参数是 -m elf_i386。
1、Along with the -m32 flag in gcc, you may need to include the -melf_i386 flag for ld to properly link the 32bit object files to the 32bit libraries if you have both the 32bit and 64bit libraries.
2、 ld命令 ld命令是GNU的连接器,将目标文件连接为可执行程序。
3、举例:

gcc -m32 -o hello hello.c

gcc -m32 -c hello.o hello.c
ld -m elf_i386 -o kernel main.o hello.o
全部回答
装openSUSE 下32位需要的开发包追问可否具体一些?
这个比较麻烦。
首先你要装好全套的 32 位对应的开发编译支持环境和对应的运行环境,之后还要设置你这个软件编译时用 32 位的参数和 32 位的编译器。

你这个其实等同于交叉编译。追问使用gcc编译加上-m32就可以了。追答不全是追问可否具体一些?
加-m32编译和直接在32位系统下编译有什么区别?追答32 位系统,整个系统环境都是 32 位的。
-m32 是让 gcc 输出为 32 位的程序,但你需要保证整个需要的函数库也都是 32 位的,不然会出现链接库找不到的情况,而且有些系统,32 位函数库都放在 /lib32 和 /usr/lib32 里面,这个位置又和 32 位系统的地址不一样,不过这个问题一般没事,因为系统动态的会去找位置。
主要问题是 64 位环境下面,很多程序和函数库都是 64 位的,32 位的不一定全。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
370×18-27×18简便运算
冬天半夜适合锻炼吗?
明度高的色彩感觉远,明度低的色彩感觉近?
利器盒装多少封存
GIGABYTE BIOS怎么设置
柳州忠文电玩信誉好吗
24小时动态心电图显示室性早搏403次,室上性
修仙物语宠物攻略 灵兽怎么获得
隔夜茶能使睫毛增长吗??
太仓森通驾校那个教练人好?
2001512月6号离寒假有多少天?
刚退休不到一年就去世的养老金怎么办
1984年农历9月22日出生 女 是属什么?是什么
怎样开美甲店
王者荣耀钟馗跟孙悟空哪个好
推荐资讯
吕教授刮痧保健中心怎么样
动漫里面一白一黑的熊
肿么做 。
0.965除以7.5得数保留三位小数竖式怎么计算
想普及一下,联通赠送的20G不限量流量能用电
现在哪个礼拜平台收益率高于6%!
请问各位养花的朋友 谁能告诉我八角金盘的叶
银行卡流水一年十万是怎么计算的
从桐梓到綦江的火车列车表是多少
计算s=-1+1÷4!-1÷7!+1÷10!-……直到某一项
我们委托工厂将进口的美国红橡木板材加工成家
吴树燕云断尺书,迢迢两地恨何如?是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?