摘要:
A指的是,我处理C/C++静态库lib文件,将其加载到内存,分析其二进制格式,提取其中的各种数据信息(obj,段(Section),符号(Symbol),重定位(Relocation),字符串表(StringTable) 等)。 B指的是,我读入LIB文件,改写和调整其中的部分数据,再写出新的LIB文件。在改写数据之前,要先加载并分析,重用A是很自然的事情。 A这一部分功能,一直在测试,一直在正常使用,一直没问题。B这一部分,代码被仔细检查了好多遍,也不应有问题了。可是为什么到最后,生成的LIB文件不合法呢(不被链接器认可)?经过漫长而坚苦的排错过程,发现最终导致问题出现的根源是:A中会修改. 阅读全文