Visual studio 从MinGW静态库(.a)到Visual Studio静态库(.lib) 我试图用它来从C++应用程序创建Excel电子表格。

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归档文件。您是否尝试重命名该文件?:) 以下是我发现有用的两个资源: [剪,链接错误] 编辑。我找不到我要找的链接。同

问题是在编译xlsLib时,我给出了一个.a文件(一个GCC静态库,由MinGW生成)。但是,我的应用程序依赖于另一个只使用Visual Studio编译的API(
PhysX


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

据我所知,它们是一样的。Visual Studio的
.lib
文件也是包含对象文件的
ar
归档文件。您是否尝试重命名该文件?:)

以下是我发现有用的两个资源:

[剪,链接错误]


编辑。我找不到我要找的链接。同时,检查一下:

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

  • 转到项目属性(Alt-F7)
  • 在左侧框中,打开
    configurationproperties->Linker->Input
  • 添加您需要使用的所有
    .a
    存档的列表
  • 您可能还需要添加MinGW的
    libgcc.a
  • 此外,关于混合的C运行时库,可能会出现一些问题,例如C/C++->属性->代码生成->运行时库,但这取决于您与MinGW一起使用的构建配置。有时有必要链接到MinGW的
    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项目中的资源?