Ошибка построения сегментированного дерева решений VFML - PullRequest
2 голосов
/ 11 апреля 2011

Я пытаюсь скомпилировать VFML инструментарий в Ubuntu 10.04.Первоначально он был построен с использованием GCC и не поддерживался в течение примерно 7 лет, но это единственная открытая реализация алгоритма дерева дополнительных решений (VFDT), поэтому я хотел бы оценить его.

Послеисправив несколько мелких ошибок в make-файле и vfml / src / core / BeliefNet.c, я смог скомпилировать его.Однако попытка запустить двоичные файлы vfdt или cvfdt на примере набора данных "banana" (vfml / examples / c45interface / test.data) приводит к ошибке сегментации.

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

My C isнемного ржавый, и я давно отлаживал подобные ошибки.Кто-нибудь может порекомендовать лучший способ исправить такой старый код?Является ли единственный путь, чтобы копаться в нем с помощью gdb или есть какой-то другой способ обновить код для работы с современной версией GCC?

1 Ответ

1 голос
/ 13 апреля 2011

«Лучший способ» исправить старый код - начать с известной рабочей среды и перейти к среде, которую вы хотите. Найдите популярный стабильный дистрибутив с даты последнего выпуска.

Если последний выпуск был в июле 2003 года, попробуйте Red Hat Linux 9 (shrike-i386-disc1.iso, shrike-i386-disc2.iso, shrike-i386-disc3.iso).

Установите дистрибутив с помощью соответствующего инструмента и опций библиотеки. После установки дистрибутива попробуйте собрать исходный код. Если вам повезет, источник будет просто построен. Если нет, обновите компилятор и библиотеки до тех пор, пока не будут удовлетворены зависимости минимум . Оттуда попробуйте обновить один компонент (библиотеку или компилятор) с шагом разумного размера, пока не достигнете современного набора инструментов. Внимательно следите за последней конфигурацией, которая была успешно построена. Таким образом, если вы потеряете трек, вы всегда можете вернуться к последнему успешному состоянию. Сейчас это может быть много работы, больше, чем вы готовы сделать, но я пытаюсь ответить на заданный вопрос, а не рекомендовать вам искать более современную или лучше поддерживаемую библиотеку. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...