我正在寻找一个Windows版本的GNU工具 objcopy。我想要实现这里发布的建议来解决我的问题,然而我需要在不同平台(Windows、Linux和Mac)上进行操作。 我在Google上没有找到答案,所以也许解决方案需要有所不同。谢谢!
默认的MSVC工具包含以下命令:LIB /EXTRACT
用于提取对象的副本;LIB /REMOVE
用于从库中删除对象。
我认为当您将目标文件放回时,LIB /DEF /EXPORT:externalName=internalName
也会对您有所帮助。
EXPORT:prefix_Symbol=Symbol
就是这样做的。 - MSalters如果您不介意使用hack的方法,可以在库文件中将所有冲突名称的实例替换为相同长度的不同名称。但请自行承担风险。
例如:
// 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();
objcopy
。 - Some programmer dude