汇编 bash: ./cpuid: Accessing a corrupted shared library
来源:互联网 发布:费用优化的步骤 编辑:程序博客网 时间:2024/06/03 22:50
这个问题的主要原因是:
原因
操作系统:Ubuntu 14 操作系统和 cpu是64位的 as -o cpuid2 cpuid2.s ld -dynamic-linker /lib/ld-linux.so.2 -o cpuid2 -lc cpuid2.o :output bash: ./cpuid: Accessing a corrupted shared library 我们按照书上的代码,是基于32cpu 的,但是现在的大多数64CPU和操作系统,我们需要修改一下命令生成32位的目标文件 链接生成32位的可执行文件,问题是我们现在生成和链接的是64的,但是cpuid2.s 命令确实32位的指令,不是64位的,所以俩种解决办法:1.生成32位的文件 2. 32位指令换成64位指令。
cpuid2.s 内容
cpuid2.s 内容:
#cpuid2.s Sample program to extract the processor Vender ID.section .dataoutput: .asciz "The processor Vendor ID is '%s'\n".section .bss .lcomm buffer, 12.section .text.global _start _start: movl $0, %eax cpuidmovl $buffer, %edimovl %ebx, (%edi)movl %edx, 4(%edi)movl %ecx, 8(%edi)push $bufferpush $outputcall printfadd $8, %esppush $0call exit
解决方法
方法一
as --32 -o cpuid2.o cpuid2.sld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o cpuid2 -lc cpuid2.o
方法二
修改指令位64位的,我不会
0 0
- 汇编 bash: ./cpuid: Accessing a corrupted shared library
- sybase安装过程Accessing a corrupted shared library
- 汇编指令CPUID
- CPUID 汇编指令
- CPUID 汇编指令
- How should i build a shared library?
- shared library (.so) and static libarary (.a)
- how to strip a shared library
- Delphi通过汇编获取CPUID
- 嵌入汇编与CPUID指令
- How-to use a shared library in native-activity
- Qt 创建shared library,调用shared library
- 汇编(指令cpuid)获取cpu信息
- Solaris shared library FAQ
- Build Shared Library
- Shared Library Search Paths
- load shared library
- Qt创建shared library
- 《利用Python进行数据分析》17-1-1
- JAVA-AbstractQueuedSynchronizer
- Windows 下安装 MongoDB
- Struts2 HttpServletRequest获取请求参数的过程
- 小图标和文字对齐
- 汇编 bash: ./cpuid: Accessing a corrupted shared library
- 59. Spiral Matrix II
- Codeforces 430C Xor-tree【Dfs+思维】
- mfs master高可用
- 新的一年
- Spring中 PROPAGATION_REQUIRED 解释
- java中队列的使用
- error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
- 1033. 旧键盘打字(20) PAT乙级