这个其实只是记录一下,之前用过,忘了,刚才郁闷了半个小时
如果我们想修改部分源码,只需要编译改的那部分就好了,比如编译gmmbin下的某个文件,不过这时候改完需要三个步骤,报错主要是忘了depend.
error:
gmm-init-mono.o: In function `kaldi::ReadSharedPhonesList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >*)':
/home/zjm/kaldi/src/gmmbin/gmm-init-mono.cc:35: undefined reference to `kaldi::Input::Input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*)'
/home/zjm/kaldi/src/gmmbin/gmm-init-mono.cc:42: undefined reference to `kaldi::PrintableRxfilename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/zjm/kaldi/src/gmmbin/gmm-init-mono.cc:46: undefined reference to `kaldi::PrintableRxfilename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
gmm-init-mono.o: In function `main':
make clean
make depend
make
如果还报错,那就把kaldi重新编译一下,不过记得:
./configure –use-cuda=yes –cudatk-dir=/usr/local/cuda-8.0
然后 重新编译的过程make depend 不会报错,但是在make的时候hmm gmm 还会报错,那怎么办呢?
那就将tools 和 src都make clean之后再重新编译一遍,因为当时装的时候是ok的,没有更新的话, 也应该是ok的,注意严格按照INSTALL文件的流程来,亲测成功了