obj文件的relocation与symbol问题。
acguy 2005-06-20 07:45:18 c/cpp编译成obj文件时,编译器把所有函数调用(如果没有static关键字),全局变量,外部变量,都用relocation的方法来解决。
现已有多个obj文件,要将其合并成一个obj,但要将在此文件范围内可找到的重定位全部予以定位。
举例:a.cpp中有调用b.cpp 中的function();
那么a.obj中就有一个call relocationxxx 指令。重定位表中就记录了这个重定位。同时b.obj中符号输出表就有function符号。
现合并后,该指令改为call relate-address-to-funtion, 重定位表中就删除该重定位,同时输出表中删除function
大虾们指点一二。