Mingw、Mingw-w64、msys、msys2、Cygwin等总结

Mingw包含一个c运行库,以及windows的头文件,同时包含了一些编译器工具链,能够将编译windows程序生成windows的32位可执行文件。

Mingw-w64是从Mingw衍生而来,能够生成32和64位的windows可执行文件。

msys是上面两个的一个集成环境,工具链更加完善。

msys2与msys不同,msys集成了Mingw和Cygwin这两个,同时包含一个包管理工具,包含了很多编译好的dll包,使用比较方便,但是对于linux下大多数的调用了Unix类函数的包,都是使用Cygwin编译完成的。

Cygwin是一个中间层,在windows下实现了Unix的类函数,使用这个可以生成任何linux下的程序,根本不用修改程序。

 

总结:

如果程序只使用了windows的API或者相应的windows下的库函数(如果没有某个库函数,我们也可以重写一个windows下的库函数),我们就使用Mingw-w64就好了(为啥不使用Mingw,因为停更了)。但是如果使用了类Unix的API,那就必须使用Cygwin来生成。

当然,如果需要使用Cygwin来生成了,我们不如直接使用msys2来完成了。

 

如果是商用程序,就必须注意了,都是GPL协议。

你可能感兴趣的:(C语言,C语言,文档,GNU工具,linux,windows)