刚刚学完PE文件格式,首先下载了piet(好像是这个名字)写的第二版的英文原版,但见其用词生涩,没看懂,又下了另一个人写的英文版,洋洋洒洒写了很多页,仍然没看全当然也没看懂。又看了 梁肇新 写的《编程高手箴言》中的PE的部分,终于看得比较懂了,后面才发现,原来这一篇是照着piet第一版写的,想想真是寒颜。因为我花了几个小时看piet第二版没看懂,最主要是因为他爱用很不常用的词与句式,所以我就找到他的邮箱,写了一封极其不满的信给他,向他表明“技术文章当通俗易懂”的观点。不过他的第一版写得很通俗,为什么第二版就用那么多古奥的词呢?无论如何,在这里公开给他道个歉吧,年轻人有时做事太冲动,希望他看了我的信不要生气;另外,我看不懂他的文章,只能说我的英文水准有待提高吧,哈哈。这里有个问题,link的过程是不是很费时间:
1。假设有三个obj文件要连在一起,所有的公共变量或静态变量都要重定位
2。所有代码中表示这些公共变量的地址的地方都要改变,因为这些变量都移动了地址
3。所有的.idata, text....这些区都要合并在一个连续的区域,这样也要移动我上面的说法有错吗?
那么是不是很费时间?

解决方案 »

  1.   

    obj文件连在一起那是编译器的事,变量移动是windows的文件加载器的事.我也不是很懂,感觉你说的和PE文件格式没什么大的联系.
      

  2.   

    相比compile来说,link当然费时的多。
      

  3.   


    非也非也
    每个object都有公共变量或静态变量
    当几个object都连在一起的时候,这些变量要集中在一个地方