У меня скачать Реализация скрытой марковской модели на С ++ написано Деканг Лин, но я обнаружил ошибку при вводе make
в каталоге src.
Спасибо @Michael, эта проблема решена.
В tables.cpp
, добавлять #include <cstdlib>
,
В genseq.cpp
а также trainhmm.cpp
, добавлять #include <stdlib.h>
,
Информация об ошибке:
g++ -c -o tables.o -g tables.cpp
tables.cpp: In member function 'bool OneDTable::rand(long unsigned int&)':
tables.cpp:155:24: error: '::rand' has not been declared
tables.cpp:155:34: error: 'RAND_MAX' was not declared in this scope
make: *** [tables.o] Error 1
Вы не должны сами вызывать свой компилятор. Этот проект содержит Makefile, поэтому запустите make
и лучше исправить то, что сломано в Makefile и исходниках, чем пытаться индивидуально собрать .o
ты сам. Но:
Вероятно, в этом файле table.cpp отсутствует #include
строка, где заголовок был бы включен, где OneDTable::rand(..)
был бы объявлен. Также отсутствует ::rand
указывает, что отсутствуют стандартные библиотеки включений. Это не проливает свет на целостность исходного кода. Может быть, просто возможно, как начинающий C ++, вы не хотите начинать с сломанного C ++, которому 12 лет.
Если вы не слишком настроены на чистый C ++, вы можете использовать gHMM, который гораздо более зрелый (и написан на C, поэтому работает безупречно на C ++, но не так уж и объектно-ориентирован). Также, HMMlib выглядит довольно мило.