我有一个旧的 C++ 库,只能在 Windows 的 MinGW+MSYS32 上构建。从那里,我可以生成由 GNU libtool 生成的 .a 静态库文件。我的主要开发是在 Visual Studio 2008 中完成的。如果我尝试将 MinGW 生成的库链接到 Visual Studio 中,它会抱怨缺少外部引用。这很可能是由于所做的 C++ 符号名称重整,与 .a 文件中的内容不匹配。是否有任何已知的方法将静态 .a 文件转换为 VC++ 库格式?
nm
进行此操作;我不是Windows程序员,因此我不知道那里要使用什么工具)。就个人而言,我不会费力去尝试在这两个不同的编译器之间建立链接,因为它根本无法工作。相反,您需要将实现移植到一个共同的编译器,并从那里开始。
搜索def文件并运行命令,例如lib /machine:i386 /def:test.def,它将生成一个导入库文件。