我正在寻找Windows等效的GNU工具 objcopy 。我正在寻求实现suggestion posted here我的问题,但我需要跨平台(Windows,Linux和Mac)。我在谷歌朋友找不到答案,所以解决方案可能需要以不同的方式实施。谢谢!
答案 0 :(得分:4)
部分默认MSVC工具:LIB /EXTRACT
提取对象的副本; LIB /REMOVE
然后将其从库中删除。
我认为当您将目标文件放回来时,LIB /DEF /EXPORT:externalName=internalName
对您也有好处。
答案 1 :(得分:0)
如果您不介意黑客,则可以在一个库bin文件中用相同长度的其他名称替换冲突名称的所有实例。这样做需要您自担风险。
示例
// a.h
void doSomething();
// b.h
void doSomething();
我们可以将doSomething
替换为doSomethink
在python中,它将类似于:
f = open('b.lib',"rb")
s = f.read()
f.close()
s = s.replace(b'doSomething',b'doSomethink')
f = open('b.lib',"wb")
f.write(s)
f.close()
并相应地修改b标头
// b.h
void doSomethink();
请注意,这里我使用了标头中定义的普通函数名称来匹配二进制文件中的符号,但是您可能希望使用完整的整齐的名称,以防止不必要的替换。