文章目录
MSVC和MinGW的区别
MSVC是微软官方提供的C/C++编译器,与Windows平台紧密集成,得到微软官方的支持和维护,MSVC通常和Visual Studio集成,提供了强大的IDE功能。MSVC更直接地支持Windows API,并且提供了丰富的Windows开发库和工具。 当然MSVC的优化程度更好 性能相比于MinGW也更好;
MinGW(Minimalist GNU For Windows)是一款开源的Windows平台下的C/C++编译器,有大量的社区支持和资源,MinGW使用GNU工具链 因此支持类UNIX系统上常见的编译选项和工具; MinGW生成的可执行文件通常不依赖于MSVC运行时库,因此可以更容易在不同版本的Windows上运行也更容易跨平台; 当然在MingW的程序中我们也是可以调用WindowsAPI的.
静态库和动态库的调用
MSVC和MinGW 静态库互相调用
MSVC生成的静态库的后缀是.lib
MinGW生成的静态库的后缀是.a
由于MSVC生成的静态库和MinGW生成的静态库ABI(Application Binary Interface)无法兼容、使用的标准库也不同(MinGW使用的GNU标准库、MSVC使用的微软标准库),所以两个编译器生成的静态不可以跨编译器相互调用;
MSVC和MinGW 动态库互相调用
MSVC生成的动态库后缀是.dll 生成的动态库的