嗨我在连接我的" .s"时遇到了几个错误。一起归档。
首先,我通过" gcc -S -m32 search.c" 编译文件 得到我的32位汇编程序代码。
其次,我想使用" gcc -o
将程序链接在一起
搜索search.s"
如果我这样做,我会收到以下错误:" 错误:“推送”无效指令后缀。" 我试图使用谷歌解决问题并找到解决方案通过使用--32选项标志。但这也不起作用。结果显示以下错误: usr / bin / ld:输入文件的i386架构与i386:x86-64输出不兼容。第三个选项是将.code32添加到.s文件中,gcc让我编译它。虽然通过执行控制台立即说"核心转储"。
所以我真的不知道该怎么做。任何人都知道我是如何让事情发挥作用的?
干杯
答案 0 :(得分:2)
与--32
汇总,并与-m32
。
gcc -m32 -o search search.s
如果没有-m32
,输出将是64位可执行文件。错误消息是由于输入对象是32位对象;您无法从32位对象生成64位可执行文件。