ruby2.2.2在msvc2010上编译

ruby2.2.2在msvc2010上编译有些问题,主要是msvc2010不支持c99,ruby有些扩展源代码例如ffi.c局部变量没有在block的起始位置定义,导致编译器报错。

办法

1.用支持c99的编译器,把msvc2010丢到垃圾桶里。

2.继续使用本应丢到垃圾桶里msvc2010,在这些变量上加上作用域。

另外,ruby构建默认使用/O2(/O2sy- 最大速度最小体积不做fpo)优化,为了更有利于调试,可以把它改为/Od,修改win32目录下Makefile.sub文件,查找OPTFLAGS。

详细分析ruby解析器参考

https://ruby-hacking-guide.github.io/

原文地址:https://www.cnblogs.com/rickerliang/p/4667859.html