如何在Visual Studio中使用MingW编译的库?

时间:2015-03-19 07:50:34

标签: c++ visual-studio mingw

我在foo.a编译了一个库MinGW。它应该在Windows中工作,因为它是跨平台的库(LibVNCServer)。配置时,我使用了标志-static--disable-shared。 但是,当我尝试在Visual Studio中包含foo.a时,我遇到了以下错误:

unresolved external symbol ___chkstk_ms
unresolved external symbol _snprintf
unresolved external symbol _jpeg_CreateCompress

如何在MinGW中编译源文件,以便生成的库文件可以在Windows中运行?我只需要包含所有依赖项的库,因此我可以在Windows上的Visual Studio中无错误地链接它。求助。

1 个答案:

答案 0 :(得分:1)

库不仅依赖于平台,还依赖于工具集。当您使用编译器A编译库时,您不能认为它将与使用编译器B编译的程序一起使用。

编译器之间存在差异,例如与函数名称不同。

  • 调用约定
  • 堆所有权
  • 注册保存

任何非平凡的代数都可以引用编译器特定的运行时函数进行除法等等。

使VS可以使用静态库foo.a的最安全方法是使用VS从源代码编译它。