对于cygwin和mingw的区别已有基本了解。先已有mingw+msys环境,mingw版gcc在mingw官网下载,版本4.5.2,安装了一些的开发库,但在mingw中编译gnu程序,少有顺利通过的,mingw版的gcc编译出来是原生的win32程序。考虑到mingw对linux环境的模拟“不够纯”,重新下载安装cygwin,现只有一个基本的运行环境。可以确定,cygwin中预装的程序(/bin目录下的大量工具)对cyg*.dll的动态库有依赖,目前没有安装cygwin版的gcc。
我的疑问是:
1.直接把mingw版的gcc放到$PATH路径中,这样在cygwin的终端环境中编译gnu软件或者一些开发库和在msys终端编译是一致的效果吗?比如,失败的话,同样的错误;成功的话,同样不依赖于cyg*.dll动态库?
2.通过setup另下一个cygwin版的gcc(其实在cygwin官网上同时看到有gcc和mingw-gcc就很疑惑了),在cygwin的终端环境中编译软件,如果遇到源代码直接调用win32API而不是unix风格的系统调用,cygwin版的gcc能否编译成功? 若可以编译成功,是不是程序运行依赖于上述的dll?
3.同时保留有两个版本的gcc(mingw的和cygwin的),个人想在编译常用工具或开发库(如gnu的工具)时使用cygwin版的,这样在本地运行,即便依赖cyg*.dll动态库也可以接受,而基于这些工具和开发库开发新的程序,能否通过指定gcc编译器和在编译时添加额外选项,甚至从源码重新编译新的gcc软件,来使新的程序不必依赖cyg*.dll动态库?
第3点是本人最关心的,希望有高人来解答,谢谢!
来源:oschina
链接:https://my.oschina.net/u/1452315/blog/203606