Visual studio 从MinGW静态库(.a)到Visual Studio静态库(.lib) 我试图用它来从C++应用程序创建Excel电子表格。
问题是在编译xlsLib时,我给出了一个.a文件(一个GCC静态库,由MinGW生成)。但是,我的应用程序依赖于另一个只使用Visual Studio编译的API(Visual studio 从MinGW静态库(.a)到Visual Studio静态库(.lib) 我试图用它来从C++应用程序创建Excel电子表格。,visual-studio,static,mingw,Visual Studio,Static,Mingw,问题是在编译xlsLib时,我给出了一个.a文件(一个GCC静态库,由MinGW生成)。但是,我的应用程序依赖于另一个只使用Visual Studio编译的API(PhysX) 因此:是否可以将GCC静态库(xlslib.a)转换为Visual Studio静态库文件(xlslib.lib)?据我所知,它们是一样的。Visual Studio的.lib文件也是包含对象文件的ar归档文件。您是否尝试重命名该文件?:) 以下是我发现有用的两个资源: [剪,链接错误] 编辑。我找不到我要找的链接。同
PhysX
)
因此:是否可以将GCC静态库(
xlslib.a
)转换为Visual Studio静态库文件(xlslib.lib
)?据我所知,它们是一样的。Visual Studio的.lib
文件也是包含对象文件的ar
归档文件。您是否尝试重命名该文件?:) 以下是我发现有用的两个资源:
[剪,链接错误]
编辑。我找不到我要找的链接。同时,检查一下: < P>静态库的文件与MIWW生成的文件一般兼容Visual C++编译器/链接器。因此,通过将
.a
文件添加到Visual Studio项目属性中的链接器输入,您应该能够直接使用它们:
configurationproperties->Linker->Input
.a
存档的列表libgcc.a
库libmsvcrt.a
,但在许多情况下(如果不是大多数的话)会导致问题
最后,混合的明文和Visual C++链接通常适用于C模块,而对于C++,它不适用。
但是使用.a会导致my.exe无法调试“找不到调试信息”5月22日12时27分
这是因为.a库不包含调试所需的调试信息。如果要调试,则需要告诉编译器在编译时添加调试信息。对于mingw,当您运行“
make
”时,您需要将“-g
”添加到CFLAGS中,比如“make CFLAGS=“-g”
”不,这并不是那么简单,实际存档的格式略有不同。我相信visual studio附带了一个工具lib.exe。使用.def文件可以将.a转换为.lib。但是使用.a会导致my.exe无法调试“找不到调试信息”。@onmyway133检查调试符号是否仍然存在。您可以使用例如nm--debug syms
,如果二进制文件被剥离,它会显示“无符号”。添加libgcc.a对我很重要您说我可以使用MinGW64
生成静态库,并将其用作MSVC项目中的资源?