[windows下]-编译运行C和C++程序(Cygwin)

Cygwin

  • 1.简介
  • 2.安装
  • 3.验证
  • 4.在windows命令下使用cygwin
  • 5. Cygwin的优点
  • 6. 常见的应用场合

1.简介

cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件。点击跳转官网
Cygwin就是一个windows软件,该软件就是在windows上仿真linux操作系统。简言之,cygwin是一个在windows平台上运行的 linux模拟环境,使用一个Dll(动态链接库)来实现
这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在Windows下
[windows下]-编译运行C和C++程序(Cygwin)_第1张图片

2.安装

sygwin不是一键就能安装,它只是一个下载器

1)三种安装模式
①Install from Internet,这种模式直接从Internet安装,适合网速较快的情况;
②Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装;
③Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin
[windows下]-编译运行C和C++程序(Cygwin)_第2张图片
2)选择下载站点
不同的镜像存放了不同的包,为了获得最快的下载速度,我们可以添加网易开源镜像http://mirrors.163.com/cygwin/ 或者 阿里云镜像http://mirrors.aliyun.com/cygwin/

3)选择需要下载安装的组件包
此处,对于安装Cygwin来说,就是安装各种各样的模块而已。最核心的,记住一定要安装Devel这个部分的模块,其中包含了各种开发所用到的工具或模块。

从中选择binutils、 gcc 、mingw 、gdb、make进行安装,找到以下选项,点击后边的skip,使其变为版本号即可。

  • gcc
    [windows下]-编译运行C和C++程序(Cygwin)_第3张图片
  • gdb
    [windows下]-编译运行C和C++程序(Cygwin)_第4张图片
  • mingw
    [windows下]-编译运行C和C++程序(Cygwin)_第5张图片
    [windows下]-编译运行C和C++程序(Cygwin)_第6张图片
  • make
    [windows下]-编译运行C和C++程序(Cygwin)_第7张图片

3.验证

安装完成后,安装程序会提示是否在桌面上创建Cygwin图标等,点击完成退出安装程序。等待安装完成后,运行图标cygwin。
[windows下]-编译运行C和C++程序(Cygwin)_第8张图片
在弹出的命令窗口输入

cygcheck -c cygwin

打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
[windows下]-编译运行C和C++程序(Cygwin)_第9张图片
也可以查看Cygwin版本信息

cygcheck --version

[windows下]-编译运行C和C++程序(Cygwin)_第10张图片

会在安装目录下,创建一个linux系统目录分区。自己位于的/home/
[windows下]-编译运行C和C++程序(Cygwin)_第11张图片

4.在windows命令下使用cygwin

要想在Windows命令提示符下使用Cygwin,你需要添加Cygwin到Windows环境变量。
在我的电脑上右键选择属性打开系统属性。选择高级系统属性打开系统属性窗口:
在高级选项里点击下面的环境变量。
在系统变量里,找到Path变量并单击进行编辑。
在变量值选项的最后面添加Cygwin下bin路径:

C:\cygwin64\bin

[windows下]-编译运行C和C++程序(Cygwin)_第12张图片
正如下面的图片里所看到的,pwd和ls在Windows命令提示符工作正常。
[windows下]-编译运行C和C++程序(Cygwin)_第13张图片

5. Cygwin的优点

  • 首先自然是近乎一致的UNIX/Linux体验;
  • 完备且相对轻量,普通用户不必安装整个Linux系统或虚拟机,就可以获得近乎一致的体验,Cygwin的程序运行与Windows互不干扰,高效的命令行工具与Windows图形界面各有所长、形成互补;
  • 开源免费,cygwin1.dll本身是按照GPLv3协议发布的,其他的应用程序有GPL、LGPL、X11等多种协议;
  • 安装卸载方便,Cygwin提供了包管理工具,可按需安装/卸载软件包,一个能运行起来的最小Cygwin系统只需要几十上百MB,而完全的Cygwin系统需要几十GB;
  • 源码级兼容性,GNU、UNIX、Linux软件的源代码几乎不用修改就可以在Cygwin环境中编译构建成功;
  • 与Windows互操作,Cygwin把Windows的磁盘挂载到/cygdrive下,如c盘就是/cygdrive/c、d盘就是/cygdrive/d,Cygwin中的应用程序可以读写Windows磁盘中的文件,Windows应用程序也可以读写Cygwin目录中的文件(但要注意不要把文件搞乱了);Cygwin的shell中可以启动Windows程序,Windows的cmd中也可以启动Cygwin的程序,但由于字符编码不同可能造成乱码;
  • 多一套可用的API,对于Windows开发者,程序代码既可以调用Win32 API,又可以调用Cygwin API,甚至混合。

6. 常见的应用场合

(1)Shell命令行使用

Shell是UNIX/Linux的精华所在,骨灰级玩家可以做到不用鼠标只敲命令完成所有工作,用户最常用的大量命令在Cygwin下均可照常使用,在UNIX/Linux编写的脚本也可以几乎不加修改地在Cygwin下运行。例如安卓厨房本是在Linux-like环境下运行的脚本集合,用于修改安卓系统固件包,有了Cygwin,Windows用户也可以拿来修改安卓系统固件包。高效的命令行工具与Windows图形界面各有所长、形成互补。

(2)交叉编译构建环境搭建

Cygwin环境中已移植好了gcc等开发工具,大量的交叉工具链(如arm-none-gnu-eabi-gcc、arm-none-gnu-eabi-binutils)也可以在Cygwin中制作,就算只有Windows原生版本的,Cygwin shell中也能调用,那么利用Cygwin就能搭建起交叉编译构建环境;另外,使用Cygwin API,编写代码以及后续编译构建过程,与在UNIX/Linux中差异也很小了。

(3)程序移植

把符合POSIX标准的程序移植到Windows下,还有更多正在由个人、社区、商业公司、研究机构不断贡献的开源自由软件,造福广大Windows用户,利用已有的GNU、UNIX、Linux软件会使程序移植越来越容易。这一点不多说。

(4)兼用POSIX API和Win32 API开发

有的开发者可能对UNIX/Linux和Win32的API都熟悉,两套API也各有其优点,在Cygwin下开发者自己可以任意选取、混合使用。

你可能感兴趣的:(开发工具,c++,windows,unix)