Windows编译环境介绍

简介: Windows编译环境介绍

windows 环境下编译 C/C++ 项目,会涉及到以下4个软件,或者说是工具套件。

1,MSVC :Windows 原生编译套件,全称 Microsoft Visual C++。vs2019 默认就是使用这个编译套件。

2,MinGW :GCC 编译工具链 在 Windows 平台的移植。

3,Cygwin :不仅仅是把 GCC编译工具链移植到 Windows 平台,还有相关的Linux 命令也有移植,ls,mkdir,clear 之类的命令也有移植。

4,MSYS2 :集合 MinGW 的GCC 编译工具 链 跟 Cygwin 的配套工具。


虽然 MinGW 跟 Cygwin 都提供了 gcc 编译器,但是MinGW 的 gcc.exe 是更原生一些的,没有依赖 cygwin1.dll 。而 Cygwin 的 gcc.exe 依赖 cygwin1.dll。

Cygwin 平台大部分的软件都依赖 cygwin1.dll,这个 dll 是一个 POSIX 模拟层,模拟了很多 Linux 的函数,fork, spawn, signals, select, sockets 。

因为 Cygwin 有模拟层,所以他的兼容性跟移植性会更好一些。也就是说如果你要移植一个Linux的软件,用 Cygwin 开发效率会更高一些。

而 MinGW 的 gcc.exe 实际上跟 MSVC 的 cl.exe 是类似的,编译出来的都是原生的windows程序。

然后 MSYS2 使用的编译工具链是 MinGW 的 gcc,但是 ls,mkdir,clear 之类的命令 是基于 Cygwin 修改过来的。

MSYS2 更注重于编译生成原生的 Windows 应用,而 Cygwin 专注于移植,基于 cygwin1.dll 模拟层来移植。

例如 MSYS2 使用的 C语言运行时库 是 MSVCR,而 Cygwin 用的是 newlib 运行时。


提醒一下:上面 4个工具,主要都是用来 编译 生成 Windows 的 lib 静态库,dll 动态库,或者 exe 可执行文件的。他们不能生成 Linux 平台的 ELF 格式的可执行文件或者静态库动态库。也不能把 Linux 的ELF可执行文件放在这些平台运行,要运行必须用源码重新编译成 exe。

可以把上面 4 个软件看成是为了 Windows 服务的。

上面的编译器如果混用,会带来一些 ABI 兼容的问题,例如 MinGW 的 gcc 编译器生成的 dll 动态库 给 MSVC 的 cl.exe 使用。这些内容在后面都会有所讲解。


参考资料:

1,《什么是msys2》

2,《使用 msys2 的软件》

3,《什么是 MinGW》

4,《什么是 Cygwin》


目录
相关文章
|
2月前
|
Java 开发工具 Windows
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
|
2月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
|
4月前
|
应用服务中间件 Linux 网络安全
windows+linux环境下nginx部署环境
windows+linux环境下nginx部署环境
|
4天前
|
编解码 Linux Windows
FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
本文档介绍了在Windows环境下如何为FFmpeg集成libopus和libvpx库。首先,详细阐述了安装libopus的步骤,包括下载源码、配置、编译和安装,并更新环境变量。接着,同样详细说明了libvpx的安装过程,注意需启用--enable-pic选项以避免编译错误。最后,介绍了重新配置并编译FFmpeg以启用这两个库,通过`ffmpeg -version`检查是否成功集成。整个过程参照了《FFmpeg开发实战:从零基础到短视频上线》一书的相关章节。
19 0
FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
|
5天前
|
编解码 Linux Windows
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
在Windows环境下,为FFmpeg集成音频编解码库,包括libogg、libvorbis和opencore-amr,涉及下载源码、配置、编译和安装步骤。首先,安装libogg,通过配置、make和make install命令完成,并更新PKG_CONFIG_PATH。接着,安装libvorbis,同样配置、编译和安装,并修改pkgconfig文件。之后,安装opencore-amr。最后,重新配置并编译FFmpeg,启用ogg和amr支持,通过ffmpeg -version检查是否成功。整个过程需确保环境变量设置正确,并根据路径添加相应库。
22 1
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
|
9天前
|
安全 开发工具 git
Windows11搭建Python环境(2)- Anaconda虚拟环境中安装Git
Windows11搭建Python环境(2)- Anaconda虚拟环境中安装Git
14 0
|
9天前
|
5G Python
Windows11搭建Python环境(Anaconda安装与使用)
Windows11搭建Python环境(Anaconda安装与使用)
35 0
|
23天前
|
编译器 C语言 C++
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
|
2月前
|
前端开发 Unix 开发工具
windows使用cygwin编译Xyce
windows使用cygwin编译Xyce
20 0
|
2月前
|
存储 JavaScript 开发工具
Windows 10环境下Git安装之简易指南
该指南教小白在Windows 10上安装Git,介绍Git设置的基础知识,为你的开发项目做准备!

热门文章

最新文章