我正在寻找与 GNU 工具等效的 Windows 工具 对象复制. 。我正在寻求实施 建议张贴在这里 解决我的问题,但是我需要跨平台(Windows、Linux 和 Mac)。我在我的谷歌朋友身上找不到答案,所以也许解决方案需要以不同的方式实现。谢谢你!

有帮助吗?

解决方案

默认 MSVC 工具的一部分: LIB /EXTRACT 提取对象的副本; LIB /REMOVE 然后将其从库中删除。

我认为 LIB /DEF /EXPORT:externalName=internalName 当您将目标文件放回时,也会对您有益。

其他提示

如果您不介意一个黑客,请在一个库中的一个图书馆文件中用不同名称替换冲突名称的所有实例。以自己的风险执行此操作。

示例

// 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();
.

请注意,这里我使用了标题中定义的纯函数名称以匹配二进制中的符号,但您可能希望使用完整的Mangled名称,以防止不需要的替换。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top