免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6597 | 回复: 2

[C] 关于MSYS2的一点经验 [复制链接]

论坛徽章:
0
发表于 2016-11-18 09:22 |显示全部楼层
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提供工具链的,是制造工具的工具。







论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
发表于 2016-11-18 12:43 |显示全部楼层
在linux用mingw交叉编译windows程序,然后用wine运行, 可以使用valgrind么

论坛徽章:
0
发表于 2016-11-18 17:31 |显示全部楼层
xinglp 发表于 2016-11-18 12:43
在linux用mingw交叉编译windows程序,然后用wine运行, 可以使用valgrind么

没试过,估计很难用。

因为,这样用的话,valgrind实际模拟的是wine,而不是你的exe。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP