ruby0.4 源码分析之编译

57 篇文章 0 订阅
9 篇文章 0 订阅

昨天读ruby代码,编译不了,于是就随便翻,从makefile文件入手,先看最简单的
version.o : version.c ruby.h defines.h \
  version.h
打开version.c代码也少,
static VALUE rb_version;
VALUE rb_readonly_hook();
Init_version()
{
    rb_version = str_new2(RUBY_VERSION);
    rb_define_variable("$VERSION", &rb_version, Qnil, rb_readonly_hook);
}
show_version()
{
    printf("ruby - version %s (%s)\n", RUBY_VERSION, VERSION_DATE);
}
我加了个main,单独编译,居然报错,搞了半天,发现是其中Init_version()引用了其它的文件,把这个函数注释掉,就编译成功了。
不知为什么一个常量搞这么复杂。
编译时,最大的问题就是dbm.c编译不成功,说找不到dbm_open等函数,我依照网上的例子,单独写一个用gdbm的程序,只是打开,关闭,编译时加上-lgdbm_compact等选项,居然能顺利编译,所以我就直接放弃了编译ruby0.49的想法了。
毕竟我的目标是想读其中的源码,实在编译不了,也没法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值