1

我需要使用 SRILM 合并到 Pocketsphinx 的语言模型。尝试在 Ubuntu 18.04 Virtual Box (x86-64) 上安装 SRILM 时,我总是在制作过程中收到错误 2。

我已经删除了链接器的几个问题以及我可以从日志中读取的其他错误,但现在我什至不理解错误消息,因为它显然没有给我一个关于哪里出了问题的线索。我已经搜索了谷歌和堆栈溢出以寻求帮助,但找不到任何帮助。

我已经开始使用以下命令进行制作:

sudo make NO_TCL=1 MACHINE_TYPE=i686-ubuntu World

这是生成的日志的一部分,其中的事情运行不顺利:

make[2]: Verzeichnis „/home/christian/Schreibtisch/SPHINX/Sprachmodelle/SRILM/ModelMIxSRILM/srilm-1.7.2/lm/src“ wird betreten 
/usr/bin/g++ -march=athlon64 -m64 -Wall -Wno-unused-variable -Wno-uninitialized -DINSTANTIATE_TEMPLATES -D_FILE_OFFSET_BITS=64    -I. -I../../include   -u matherr -L../../lib/i686-ubuntu  -g -O3 -o ../bin/i686-ubuntu/ngram ../obj/i686-ubuntu/ngram.o ../obj/i686-ubuntu/liboolm.a ../../lib/i686-ubuntu/libflm.a ../../lib/i686-ubuntu/libdstruct.a ../../lib/i686-ubuntu/libmisc.a ../../lib/i686-ubuntu/libz.a  -lm  -L/usr/local/lib -liconv 2>&1 | c++filt 
../obj/i686-ubuntu/liboolm.a(Vocab.o): In Funktion »Vocab::compare(unsigned int const*, unsigned int const*)«: 
/home/christian/Schreibtisch/SPHINX/Sprachmodelle/SRILM/ModelMIxSRILM/srilm-1.7.2/lm/src/../../include/TLSWrapper.h:61: Warnung: undefinierter Verweis auf »pthread_getspecific« 

然后有一些关于“pthread”的警告

最后制作结束:

/home/christian/Schreibtisch/SPHINX/Sprachmodelle/SRILM/ModelMIxSRILM/srilm-1.7.2/misc/src/tls.cc:15: Warnung: undefinierter Verweis auf »pthread_key_create« 
collect2: error: ld returned 1 exit status 
test -f ../bin/i686-ubuntu/ngram 
/home/christian/Schreibtisch/SPHINX/Sprachmodelle/SRILM/ModelMIxSRILM/srilm-1.7.2/common/Makefile.common.targets:117: recipe for target '../bin/i686-ubuntu/ngram' failed 
make[2]: *** [../bin/i686-ubuntu/ngram] Error 1 
make[2]: Verzeichnis „/home/christian/Schreibtisch/SPHINX/Sprachmodelle/SRILM/ModelMIxSRILM/srilm-1.7.2/lm/src“ wird verlassen 
Makefile:109: recipe for target 'release-programs' failed 
make[1]: *** [release-programs] Error 1 
make[1]: Verzeichnis „/home/christian/Schreibtisch/SPHINX/Sprachmodelle/SRILM/ModelMIxSRILM/srilm-1.7.2“ wird verlassen 
Makefile:57: recipe for target 'World' failed 
make: *** [World] Error 2 

我还能尝试什么?

4

1 回答 1

0

我找到了一种使它工作的方法:我重新安装了所有依赖项,并且与它们各自的构建说明中的建议相反,将所有安装目录保留为默认(运行“./configure”而没有任何选项,但遇到了旧的 libinconv 问题。可以通过发出以下命令来解决它:

make NO_LIBV=1 MACHINE_TYPE=i686-ubuntu

并省略

World

在 make 命令中。这样所有命令都安装到 SRILM/bin/i686-ubuntu - 目录。然后我将命令添加到系统路径中,现在它可以工作了。不过,会对如何使用 libiconv 和 World 运行它感兴趣。

于 2019-05-02T11:57:50.773 回答