分享

关于MSYS2的一点经验

 quasiceo 2018-04-06
0. MSYS2系统运行于windows上。
1. MSYS2本身支持一个gcc,这个gcc编译unix代码,编译出来的可执行文件是windows的PE,带msys2xxx.dll可以在windows下运行。
2. MSYS2设计目标是用于在windows上运行mingw的gcc工具链的。
3. MSYS2的mingw有2套,一个是mingw32,一个是mingw64
4. mingw32和mingw64都可以生成win32和win64的“纯净”(不用msys2xxx.dll支持)的PE。
5. MSYS2的那个原始的gcc可以编译unix代码,但支持的函数仅限于POSIX部分,其他系统调用都不支持,如linux的epoll,eventfd等等,所以功能有限,不建议基于这个平台开发商业软件。
6. MSYS2的官方提供了已经用mingw编译的一些开发库,如glibc、libgtk+等,为GTK+程序向windows移植提供了极大的便利。
7. MSYS2上面不支持的包,可以在mingw体系下,用源代码configurate,然后make install。(我已经成功应用了安装了源码包SDL2、FFmpeg等)

总结:
1. MSYS2的原生gcc是编译unix代码的,生成exe,运行时依赖msys2xxx.dll
2. MYSY2上的mingw32和mingw64的功能是一样的,都是用于编译windows代码(能调用windows API,不能调用unix系统调用)的,生成exe,运行时只依赖windows系统的dll。
3. 至于(2),跟linux上的mingw是一样的。(我以前在一直在linux用mingw交叉编译windows程序。)
4. 开发专业应用软件,不要使用MSYS2的原生gcc平台,这个平台是为了给mingw提供工具链的,是制造工具的工具。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多