温州 徐强中 简历:MinGW、MSYS、Cygwin是什么概念,彼此之间是什么关系?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 14:02:03
您能解释一下他们都是什么吗?
以及他们之间的关系?(尤其是从使用的角度看)

另外如果还有什么别的东东是与他们相关的,也请顺带多多讲讲吧。呵呵。
***************** 谢 ********************
***************** 谢 ********************
嗯,这么解释,挺清楚的,我大概明白了他们是干什么用的了——我下载了一些开源的库的源代码,要使用者自己编译,才能得到库。
——————————————
另外,我照着一个库的说明,在MSYS中编译了它,结果得到的是这样几种后缀的文件:*.a *.dll.a *.la,这三种文件的后缀都是什么意思啊?我只听说a后缀的相当于是linux下的静态库lib文件。

而且,拿着源代码,如何把它编译成windows下的lib库或dll库呢?——如何从Linux下的移植到windows下的(不知道这么说是否合适)

谢谢啦。

概念:
  (1)MinGW,是Minimalist GNUfor Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库。
  (2)MSYS即Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。
  (3)Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件。
  三者的关系:
  Cygwin和 MSYS的角色是有重叠的,可以在Cygwin提供的环境下用MinGW的compiler&library来编出可单独执行的Windows 执行档,在MinGW的FAQ,就是把PATH设定正确,在Cygwin下使用MinGW的compiler & library即可 。

这好像windows的.dll/.exe等文件的库文件,
库文件就是帮你实现了某些功能的库函数的封装,你可以在你的程序中调用这些函数,然后连接一下就可以了。由于linux与unix一样使用VFS文件系统,对文件格式没有特别的要求。所以用户可以有自己的一定的标准。例如,.rpm也可以是可执行文件。此外,我不知道你是编写shell命令程序还是其它软件程序。因为它们又微小的区别:

1)当你编写shell程序在linux或unix下,是不能移植到windows下的。因为windows的shell程序是不能给用户自行编写的。虽然他们都是用c#编写,但封装方法不同。所以,用户也有不同的权限。虽然,把Cygwin/MinGw/MSYS装在windows也不能改变windows的内核和封装。也就是说,windows的底线是内核和某些程序。

2)如果你要编写某些跨平台的软件,可以使用borland c++.但在编写过程中,不要调用该软件所在的系统的库或由该系统为基础生成的类。因为这样是实现不了软件的跨平台性的。最好的方法是自定义类。

如果你的源代码已编写无误,想编写成windows环境下的库,利用borland c++的编译器。想编写成unix环境下的库,利用gcc编译器。