在.lib文件周围编写兼容GCC的包装器

时间:2012-02-21 18:58:09

标签: c windows visual-c++ gcc mingw

我最近收到了一个闭源SDK,它包含一个C头文件(.h),一个库文件(.lib)和一个动态库(.dll)。它们是使用Microsoft的Visual C ++编译的。但是,我试图使用MinGW编写我的代码(GCC移植到Windows,对于任何不熟悉该项目的人)。看来ld无法链接到.lib文件。我想知道是否有可能在VS编译的代码和我正在编写的GCC代码之间编写兼容性包装。

1 个答案:

答案 0 :(得分:1)

ABI不匹配还是只是不想链接对象格式?如果它只是一个链接问题,您可以提取您关心的函数,反汇编它们,然后将它们重新组合成链接器可以处理的对象。更简单,也许objcopy(1)可以说两种格式并可以帮助你吗?

如果你确实遇到了ABI问题,你可以这样做,但也可以添加一个垫片层来打击ABI,这样函数调用就可以了。该层的复杂程度和编写难度将取决于您尝试使用的函数的接口。

不要因评论而气馁 - 这是软件,所以任何都是可能的。