【发布时间】:2013-05-31 10:55:56
【问题描述】:
我在 x86 处理器中使用 cmp 命令并且工作正常(二进制文件是使用 gcc 生成的) 但是在 arm cortex a9 中使用它时,它没有给出正确的输出(二进制文件是使用 cross gcc 生成的)
在 X86 机器中使用 cmp 命令比较板特定二进制文件时,会产生正确的输出。
X-86 机器:
假设我有 2 个文件 a.bin、b.bin(使用 cmp 比较时应该相同)
cmp a.bin b.bin
及其正确的。
手臂皮质 A9:
a.bin,b.bin
cmp a.bin b.bin
这里也必须相同。
但它会产生不匹配。
请给点线索!!
【问题讨论】:
-
gcc的版本是否相同。在两者上运行gcc -v并发布输出。另外,你叫他们一样吗?另见:binary changes each build. -
这是一个 exe vs elf 的事情吗? elf 和其他格式有时 gcc 和其他编译器会在编译时放置一个时间戳,这很容易看出是否字节比较文件。某些格式可能不是。如果它们被认为是没有像包装器这样的 elf/coff/exe 的原始二进制文件,那么请参阅 tangrs 答案,即使使用共享相同父名称的两个工具(gcc、msvc 等),也没有理由期望两个二进制文件匹配。
-
请显示/列出差异。
标签: linux gcc x86 arm cortex-a8