从MinGW静态库(.a)到Visual Studio静态库(.lib)
我正在尝试使用xlsLib从C ++应用程序创buildExcel电子表格。
麻烦的是,编译xlsLib,我给了一个.a文件(一个GCC静态库,由MinGW生成)。 但是,我的应用程序依赖于另一个只能用Visual Studio编译的API( PhysX
)。
因此:是否有可能将GCC静态库( xlslib.a
)转换为Visual Studio静态库文件( xlslib.lib
)?
使用MinGW生成的静态库的存档通常与Visual C ++编译器/链接器兼容。 因此,您应该可以直接在Visual Studio中的项目属性中将.a
文件添加到链接器input中来使用它们:
- 转到项目
Properties
(Alt-F7)。 - 在左边的框中,打开
Configuration Properties->Linker->Input
- 添加您需要使用的所有
.a
档案的列表 - 您可能还需要添加MinGW的
libgcc.a
库
此外,可能会出现有关properties of C/C++->Code Generation->Runtime Library
运行时库的混合C运行时库properties of C/C++->Code Generation->Runtime Library
问题,但这取决于您在MinGW中使用的生成configuration。 有时候需要从MinGW链接到libmsvcrt.a
,但是在很多情况下(如果不是最多的话)会导致问题。
最后,这个混合的MinGW和Visual C ++链接通常可以工作,但对于C模块而言,据我所知,它不适用于C ++。
但使用.a导致我的.exe不能debugging“无法finddebugging信息”。 – 5月22日12:27
这是因为.a库不包含debugging所需的debugging信息。 你需要告诉编译器在编译时添加debugging信息,如果你想debugging它。 对于mingw,你需要在运行“ make
”的时候添加“ -g
”到CFLAGS,比如“ make CFLAGS="-g"
”
以下是我发现有用的两个资源:
[剪断,错误的链接]
http://old.nabble.com/using-VC%2B%2B-.lib-with-mingw-td23151303.html
编辑。 我无法find我正在寻找的链接。 同时,请查看: http : //www.willus.com/mingw/yongweiwu_stdcall.html
据我所知,他们是一回事。 Visual Studio的.lib
文件也是包含对象文件的ar
存档。 你尝试重命名文件吗? 🙂