我有一个用 MinGW
编译的库 foo.a
。它应该在 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 中无错误地链接它。请帮忙。
最佳答案
库不仅依赖于平台,还依赖于工具集。当你有一个用编译器 A 编译的库时,你不能假设它能与用编译器 B 编译的程序一起工作。
编译器之间存在差异,例如函数名称不同。
- 调用约定
- 堆所有权
- 注册存档
任何非平凡的代数都可能导致引用除法等特定于编译器的运行时函数。
使静态库 foo.a
可用于 VS 的最安全方法是使用 VS 从源代码编译它。
关于c++ - 如何在 Visual Studio 中使用 MingW 编译的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29139425/