ruby0.49编译

ruby0.49编译
从前天开始,又开始编译ruby0.49,过程痛苦得不想说了。
先是,dbm.c的编译。
  老是出现找不到lgdbm-compat。我后来,干脆先写测试程序,在网上抄一个。再进行编译。还是报错。于是在网上找资料。于是重新安装gdbm。各种折腾。后来,发现编译时,我把下划线写成了减号。应该这样写
  gcc t1.c -lgdbm -lgdbm_compat
但安装时,可以这样写
sudo apt-get install libgdbm-dev libgdbm-compat-dev

接着就解决指针赋值的错误。作者写的是32位的程序,但我现在是64位系统。系统中所用的表示地址的位数不同了。
先写测试程序,发现64位的地址变量是24位。在系统中在地址转换时,加上先转为long,这样,不停的折腾。

这样警告就大量的减少了。再处理有些库文件找不到的问题,再处理作者使用的有些函数废弃的问题。我也不知如何使用,就干脆把这些代码注释了。
这样终于把几万条警告减少到只剩下3条。
但进行测试时
./ruby -e 'print("ok")'
还是报那个
Segmentation fault (core dumped)
  我终于有点崩溃了。我是在win10下,wsl下弄的ubuntu,无法生成core
  dumped文件。我在想,难道要再买个笔记本,安装纯ubuntu程序。
  大神呀,我或许在笔记本上再安装一个完整的ubuntu,再在那里生成core文件,再进行gdb,找到错误。好像只能这样了。
我想,或许把自己修改后的代码放在csdn上,也许有其它的人也可以接着读代码。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章