2

在执行 make 命令时,我收到以下错误:

/home/cse/phd/16071009/NLP//lib/i686-m64/libmisc.a(File.o): 在函数File::~File()': /home/cse/phd/16071009/NLP/misc/src/File.cc:127: undefined reference tolibiconv_close' /home/cse/phd/16071009/NLP//lib/i686-m64/libmisc .a(File.o): 在函数 libiconv_close'/home/cse/phd/16071009/NLP//lib/i686-m64/libmisc.a(File.o) File::reopen(char const*, char const*)': /home/cse/phd/16071009/NLP/misc/src/File.cc:167: undefined reference to: 在函数File::reopen(char const*)': /home/cse/phd/16071009/NLP/misc/src/File.cc:217: undefined reference tolibiconv_close'/home/cse/phd/ 16071009/NLP//lib/i686-m64/libmisc.a(File.o): 在函数File::reopen(char const*, unsigned long, int)': /home/cse/phd/16071009/NLP/misc/src/File.cc:249: undefined reference tolibiconv_close'/home/cse/phd/16071009/NLP//lib/i686-m64/libmisc.a(File.o) : 在函数File::reopen(std::string&, int)': /home/cse/phd/16071009/NLP/misc/src/File.cc:273: undefined reference tolibiconv_close' /home/cse/phd/16071009/NLP//lib/i686-m64/libmisc.a(File.o) 中: 在函数File::fgetsUTF8(char*, int)': /home/cse/phd/16071009/NLP/misc/src/File.cc:387: undefined reference tolibiconv' /home/cse/phd/16071009/NLP/misc/src /File.cc:345:未定义对libiconv_open' /home/cse/phd/16071009/NLP/misc/src/File.cc:349: undefined reference tolibiconv_open'collect2 的引用:错误:ld 返回 1 退出状态测试 -f ../bin/i686-m64/ngram make[2]:* [../bin/i686-m64/ngram] 错误 1 ​​make[2]: 离开目录/home/cse/phd/16071009/NLP/lm/src' make[1]: *** [release-programs] Error 1 make[1]: Leaving directory/home/cse/phd/16071009/NLP' make: * [World] 错误 2 [16071009@compute-01 NLP]$

4

1 回答 1

1

-liconv 在链接命令中没有出现,所以这就是你得到未定义引用的原因。尝试放置:

 SYS_LIBRARIES = -L<path-to-libiconv_install> -liconv

例如,如果您在 Ubuntu x64 上安装 srilm,请编辑此文件:common/Makefile.site.i686-m64。确保 -L 选项指向具有 libiconv.so 或 libiconv.a 文件的目录。

对我来说,libiconv install srilm on Ubuntu 18.04 x64 using make are locate on /usr/local/lib. 所以我将以下行添加到 common/Makefile.site.i686-m64:

SYS_LIBRARIES = -L/usr/local/lib -liconv

解决方案来自: http: //mailman.speech.sri.com/pipermail/srilm-user/2014q3/001694.html

于 2019-04-04T07:05:03.590 回答