问题
对于某个.obj
,我的编译器"切换"即使我没有改变 任何 ,构建之间的字节值也是如此。它始终是相同的字节位置,并且始终是两个值中的一个:0x00
或0x80
背景
我正在使用QNX C ++编译器;它基于gcc
- 所以只需将其视为gcc
。
我的make
命令是:
C:\make421.exe all --trace --debug=vjm --jobs=16 --output-sync=recurse --print-directory --print-data-base
此对象的make
规则列出了包含在我的顶级工作文件夹中的所有文件。
它只依赖于一个不会改变的.cpp
文件 - 我在文件所在的整个HMI_FORGF
文件夹上做超越比较 - 我和#39 ; m还会传播包含库的其他文件夹。
绝对没有改变!
问题
为什么一个字节被切换而没有变化。 。 。什么吗?
是的,我也会问QNX,但想知道是否有人经历过这样的事情。
更新
我做了objdump -xSsDg
输出的差异,但它的大小超过了100MB,因此无法上传(如果有人知道要托管的网站,请告诉我)。
差异中有两个不同的部分:
第一部分,左侧
Contents of section .ARM.exidx.text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE:
0000 00000000 00000000 ........
第一部分,右侧
Contents of section .ARM.exidx.text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE:
0000 00000000 00000080 ........
第二部分,左
00000000 <.ARM.exidx.text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE>:
...
0: R_ARM_PREL31 .text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE
0: R_ARM_NONE __aeabi_unwind_cpp_pr1
4: R_ARM_PREL31 .ARM.extab.text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE
第二部分,右:
00000000 <.ARM.exidx.text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE>:
0: 00000000 andeq r0, r0, r0
0: R_ARM_PREL31 .text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE
0: R_ARM_NONE __aeabi_unwind_cpp_pr1
4: 80000000 andhi r0, r0, r0
4: R_ARM_PREL31 .ARM.extab.text._ZN5QHashI7QStringiE11deleteNode2EPN9QHashData4NodeE