linux – i386:x64-32 vs i386 vs i386:x86_64之间的区别
有人可以解释这三种架构之间的区别吗?
skipping incompatible library.a when searching for library.a 然后我在该库上使用了objdump -f,得到了以下输出: a.o: file format elf32-x86-64 architecture: i386:x64-32,flags 0x00000011: HAS_RELOC,HAS_SYMS start address 0x00000000 这是否意味着该库是32位?这是我收到链接器错误的原因吗? 解决方法在标准的Intel兼容机器(非Itanium)上有3种常见的ABI可用.>经典的32位体系结构,通常简称为“x86”,它具有像[3-6] 86-linux-gnu这样的三元组.寄存器和指针都是32位. 上面的每一个都有它的系统调用接口,拥有ld.so,拥有完整的库集等.但是可以在同一个内核上运行所有3. 在Linux上,他们的加载器是: % objdump -f /lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2 /libx32/ld-linux-x32.so.2 /lib/ld-linux.so.2: file format elf32-i386 architecture: i386,flags 0x00000150: HAS_SYMS,DYNAMIC,D_PAGED start address 0x00000a90 /lib64/ld-linux-x86-64.so.2: file format elf64-x86-64 architecture: i386:x86-64,D_PAGED start address 0x0000000000000c90 /libx32/ld-linux-x32.so.2: file format elf32-x86-64 architecture: i386:x64-32,D_PAGED start address 0x00000960 现在,如果您收到有关“跳过不兼容的库”的消息,这意味着某些内容与您的配置混乱.确保环境中没有错误的变量或在命令行上传递,或者在包管理器控件之外安装的文件. (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |