ld: i386 architecture of input file `eatsyscall.o' is incompatible with i386:x86-64 output

原创 2015年11月21日 11:37:47

在Ubuntu下用学习汇编语言编程,在使用ld链接时有碰到标题所示的问题。

很明显,root cause 是我编译好的文件(eatsyscall.o)是遵循i386 architecture, 而我使用的计算机却是i386:x86-64架构,即在64位机器上编译32位代码

我安装的ubuntu version是14.04,此版本下预安装的ld(链接工具)显示:

Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om i386pep i386pe

我之前写的命令行是:ld -o eatsyscall eatsyscall.o

报错后我改了一下:    ld -m elf_i386 -o eatsyscall eatsyscall.o 

然后就可以了


usr/bin/ld: i386 architecture of input file XXX.a( xxx.o) is incompatible with i386:x86-64 output

这个问题是原来在32位Linux 系统下编译的o文件残留,在64位编译时候所提示的编译错误。make clean 可以解决。也可手动删除提示的o文件,之后重新编译。...

linux下出现architecture of input file `*.o' is incompatible with i386:x86-64 output的解决方法

architecture of input file `*.o' is incompatible with i386:x86-64 output ld returned 1 exit status

ld: i386 architecture of input file `exit.o' is incompatible with i386:x86-64 output

错误小记,以后省的忘记!!!!!!!

iOS 编译含C++代码出现ld: symbol(s) not found for architecture i386错误之解决

最近项目需要搭建自己的IM服务器,在快速配置好Openfire之后,开始研究使用gloox开发XMPP客户端实现通信, 先下载gloox源码,然后./configure,make ,sudo mak...

/usr/bin/ld: i386 architecture of input file `regcomp.o' is incompatible with i386:x86-64 output

个问题是原来在32位Linux 系统下编译的o文件残留,在64位编译时候所提示的编译错误。make clean && make...

查看CPU是i386架构和x86_64架构

查看处理器是32位还是64位 #cat   /proc/cpuinfo 检查flags行中有没有lm标记,lm是Long Mode的简写,表示支持64位模式。   #g...

IOS:armv7,armv7s,arm64,i386,x86

一、概要 平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如: 在真机上编译报错:No architectures to compile for...

iOS关于armv7,armv7s,arm64,i386,x86_64等问题

iOS测试分为模拟器测试和真机测试,处理器分为32位处理器,和64位处理器, 模拟器32位处理器测试需要i386架构, 模拟器64位处理器测试需要x86_64架构, 真机32位处理器需要armv7,或...

23 Linux x86_64与i386区别之 —— 内存寻址

1 引子   毫无疑问,不管是32位,还是64位处理器,所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是 存放取自用户输入的数据等等。不过进程对这些内存的...

iOS关于armv7,armv7s,arm64,i386,x86_64

iOS测试分为模拟器测试和真机测试,处理器分为32位处理器,和64位处理器, 模拟器32位处理器测试需要i386架构,(iphone5,iphone5s以下的模拟器) 模拟器64位处理器测...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ld: i386 architecture of input file `eatsyscall.o' is incompatible with i386:x86-64 output
举报原因:
原因补充:

(最多只允许输入30个字)