2011-04-11 35 views
2

我試圖在Ubuntu 10.04上編譯VFML toolkit。它最初是使用GCC構建的,並且在大約7年內沒有維護,但它是增量式決策樹算法(VFDT)的唯一開源實現,所以我想對它進行評估。構建VFML增量式決策樹分割錯誤

在makefile和vfml/src/core/BeliefNet.c中修復了一些小錯誤之後,我就可以編譯它了。但是,嘗試在示例「香蕉」數據集(vfml/examples/c45interface/test.data)上運行vfdtcvfdt二進制文件會導致分段錯誤。

localhost:vfml$ vfdt -batch -f test 
Segmentation fault 

我的C是有點生疏,它已經有一段時間,因爲我已經調試這些類型的錯誤。任何人都可以推薦修復這種舊代碼的最佳方法嗎?是唯一可以通過gdb進行挖掘的途徑,還是有其他方式可以更新代碼以使用現代版本的GCC?

+0

gdb將是一個好的開始。 – 2011-04-11 23:03:12

回答

1

解決舊代碼的'最好的方法'是從一個已知的工作環境開始,並遷移到你想要的環境。從上次發佈日期查找流行的穩定版本。

如果上一個版本是2003年7月,請嘗試Red Hat Linux 9(shrike-i386-disc1.iso,shrike-i386-disc2.iso,shrike-i386-disc3.iso)。

使用適當的工具和庫選項安裝分配。安裝發行版之後,請嘗試構建源代碼。如果你幸運的話,這個源代碼就可以建立。如果不是,則更新編譯器和庫,直到滿足依存關係爲止。從那裏嘗試以合理的大小步驟更新一個組件(庫或編譯器),直到達到現代工具集。仔細跟蹤最後成功構建的配置。這樣,如果你失去了蹤跡,你總是可以回到上一個成功的狀態。現在這可能是很多工作,比你願意做的要多,但我試圖回答所問的問題,而不是鼓勵你去尋找一個更現代或更好支持的圖書館。祝你好運!