C++学习(三四九)cygwin

Posted hankern

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++学习(三四九)cygwin相关的知识,希望对你有一定的参考价值。

Cygwin的主要目的是通过"重新编译"(注意:是重新编译),将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。

Cygwin不是一个跨平台模拟器,它不能让我们把linux上编译出来的程序在windows上运行(像wine那样),而是一个跨平台的编译器,也就是提供代码级的跨操作系统兼容性,我们在linux下写的符合POSIX标准的C程序可以在windows下面进行编译,Cygwin提供了一套在windows下可以使用的Linux的API

Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API。还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发。还有一些UNIX系统下的常见程序。2001年,新增了X Window System。

1. 他们写了一个共享库(就是cygwin.dll),把win32 api中没有的unix风格的调用(如fork、spawn、signals、select、sockets等)封装在里面
2. 也就是说,他们基于win32 api写了一个unix系统库的模拟层(这个模拟层是一个关键,它的底层是win32 api,上层提供unix风格的调用,所以我们才可以在windows下编译unix风格的C程序)
3. 这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在windows平台上运行的工具集
4. 以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好
像在unix上工作


cygwin是:

GNU和开源工具的大量集合,提供类似于Windows上Linux发行版的功能。

提供大量POSIXAPI功能的DLL(cygwin1.DLL)。

cygwin不是:

在Windows上运行本机Linux应用程序的方法。如果希望应用程序在Windows上运行,则必须从源代码重新生成应用程序。

一种神奇地让本机Windows应用程序了解UNIX®功能(如信号、PTY等)的方法。同样,如果要利用Cygwin功能,您需要从源代码构建应用程序。

Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购)。它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对Cygwin产生了兴趣。 [1]
Cygwin 提供一个UNIX 模拟 DLL 以及在其上层构建的多种可以在 Linux 系统中找到的软件包,在 Windows XP SP3 以上的版本提供良好的支持。Cygwin主要由Red Hat及其下属社区负责维护。

以上是关于C++学习(三四九)cygwin的主要内容,如果未能解决你的问题,请参考以下文章

C++学习(四九五)一个最简单的cmake工程文件(动态链接库)

C++学习(四九三)cmake的宏定义方式

C++学习(四九三)cmake的宏定义方式

C++学习(四四九)编译预处理的内容

C++学习(四九四)cmake从list从删除文件

C++学习(四九四)cmake从list从删除文件