我试图在Ubuntu 10.04上编译VFML toolkit它最初是使用GCC构建的,大约7年没有维护过,但它是增量决策树算法(VFDT)的唯一开源实现,所以我想对它进行评估。
在Mag文件和VFML/SRC/Cys/CyffNET.C中修复了几个小错误之后,我就能够编译它。但是,尝试在示例“banana”数据集(vfml/examples/c45interface/test.data)上运行vfdt
或cvfdt
二进制文件会导致分段错误。
localhost:vfml$ vfdt -batch -f test
Segmentation fault
我的C有点生疏了,我已经有一段时间没有调试过这些错误了有人能推荐修复这些旧代码的最佳方法吗是用gdb来深入研究它的唯一途径,还是有其他方法来更新代码以使用现代版本的GCC?
最佳答案
修复旧代码的“最佳方法”是从已知的工作环境开始,然后迁移到所需的环境找到一个流行的稳定发行版从最后一个发布日期。
如果最后一个版本是2003年7月,请尝试Red Hat Linux 9(shrike-i386-disc1.iso、shrike-i386-disc2.iso、shrike-i386-disc3.iso)。
使用适当的工具和库选项安装发行版安装发行版后,请尝试生成源如果你幸运的话,源代码就会生成否则,请更新编译器和库,直到满足最小依赖项为止从那里开始,尝试以合理的大小步骤更新一个组件(库或编译器),直到达到一个现代工具集仔细跟踪上次成功构建的配置这样,如果你偏离轨道,你总是可以回到最后一个成功的状态现在这可能是很多工作,比你愿意做的更多,但我试图回答问题,而不是鼓励你寻找一个更现代化或更好的支持图书馆祝你好运!
关于c - 构建VFML增量决策树分割故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5626017/