“线程:测试”中讨论的其它部件
大家好,
我们的情况非常奇怪,链接器无法将大小为0x98的结构链接到大小 为0x98的输出部分。
链接器输出如下所示:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要一个不能通过对齐为该 section.placement 生成的 trampoline。对 xxx 大小0x98page0的阻止失败。 可用内存范围 MEM_xxx 大小0x98未使用:0x98最大孔:0x98
我们计划查找该部分的存储器定义如下:
#define LEN_xxx 0x98
MEM_xxx:原点= 0x0C0000 - LEN_xxx,长度= LEN_xxx
一些重要事实:
如果相反,大小为0x98的数据结构使用大小为0x98的数组,则链接工作正常
如果我们对 LEN_xxx 使用0xA0和0xB0,并且数据结构作为输入部分,则链接将不起作用
如果我们对 LEN_xxx 使用0xC0,并且数据结构作为输入部分,则链接工作正常。 链接完成后,当我们检查地图文件时,我们可以清楚地观察到结构的大小符合预期,为0x98。
新出现的问题包括:
1 -为什么链接对数组有效,而不是对相同大小的数据结构有效
2 -当定位数据为0x98时,为什么链接对更大的书帖尺寸(0xC0)有效,而不对0xA0或0xB0有效。
如果您中的任何人一开始就知道定位为什么不起作用,请告诉我。
我们使用 的编译器是代码作曲家工作室10.2附带的编译器
谢谢你,
尤根