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上,也許有其它的人也可以接着讀代碼。

 

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