从MinGW静态库(.a)到Visual Studio静态库(.lib)

use*_*336 44 static mingw visual-studio

我正在尝试使用xlsLib从C++应用程序创建Excel电子表格.

麻烦的是编译xlsLib,我给了一个.a文件(由MinGW生成的GCC静态库).但是,我的应用程序依赖于另一个PhysX仅使用Visual Studio编译的API().

因此:是否可以将GCC静态库(xlslib.a)转换为Visual Studio静态库文件(xlslib.lib)?

mlo*_*kot 34

使用MinGW生成的静态库的归档通常与Visual C++编译器/链接器兼容.因此,您应该能够通过将.a文件添加到Visual Studio中项目属性中的链接器输入来直接使用它们:

  1. 转到项目Properties(Alt-F7).
  2. 在左侧框中,打开 Configuration Properties->Linker->Input
  3. 添加.a您需要使用的所有档案的列表
  4. 您可能还需要添加MinGW的libgcc.a

此外,混合C运行时库可能会出现问题properties of C/C++->Code Generation->Runtime Library,但这取决于您与MinGW一起使用的构建配置.有时需要libmsvcrt.a与MinGW 联系,但在许多(如果不是大多数)情况下,它会导致问题.

最后,这个混合的MinGW和Visual C++链接通常可以工作,但对于C模块而言,据我所知,它不适用于C++.

  • @ onmyway133检查调试符号是否仍然存在.你可以使用例如`nm --debug-syms`,如果二进制被剥离,它会说"没有符号". (3认同)

Nic*_*lás -1

据我所知,它们是同一件事。Visual Studio 的.lib文件也是ar包含目标文件的存档。您是否尝试过重命名该文件?:)

  • 不,事情没那么简单,实际存档的格式略有不同。 (7认同)