使用 MinGW 编译的库是否可以与 MSVC 一起使用?

Do libraries compiled with MinGW work with MSVC?

问题:
我会在 Visual Studio 项目中使用 MinGW 库。

我的系统是如何构建的:

我为 Windows 10 系统下载了 ZBar 库 ( zbar-0.23.91-win_x86_64-DShow.zip
这是 link: https://linuxtv.org/downloads/zbar/binaries/)。

我在 lib 和 bin 文件夹中有这些文件:

构建时出错:
错误 LNK2019:未解析的外部符号 __mingw_vsnprintf 在 snprintf

中引用

我的问题
使用 MinGW 编译的库是否可以与 MSVC 一起使用?

问题是这些库是用mingw编译的,而我需要在mscv项目中编译它们。

解决方案是用 Visual Studio 重建库。

可以毫无问题地使用所有东西。

您可以使用 C-lion,因为它直接支持 MinGW。 此 link.

中提供了有关如何 select MinGW 作为 C-lion 中的工具链的示例教程

https://www.jetbrains.com/help/clion/how-to-create-toolchain-in-clion.html#custom-targets-toolchain

使用它您将可以直接访问 MinGW 可用的所有库。

不,不能。使用 MinGW 编译的库只能与 MinGW 一起使用。您需要使用 MSVC 从源代码编译它。
我没怎么用过 windows 也很少用 visual studio。但是如果你愿意,你可以在 visual studio ide 上使用 MinGW。
Using MinGW with Visual Studio IDE

不,在 MinGW 上编译的库不能与 MSVC 一起使用。主要原因是:

  • 缺乏 ABI 兼容性。也就是说,在二进制中,根据编译器的不同,事物的布局方式也不同。
  • 标准库的实现方式不同。标准库可以通过多种方式实现。 C++ 标准只是说明了函数的行为方式,并不强制编译器开发人员以相同的方式实现它们。

一般来说,用一种编译器编译的东西与另一种编译器不兼容。