遵循 official HTK Unix/Linux installation guide ,我遇到了与 this thread 中描述的类似问题当尝试在 HTK 上运行 make all
时。按照 MadScientist 的建议,我最初查看了错误的 Makefile (/htk-3.4.1/Makefile
)。修复运行 ./configure --prefix=/tmp
生成的正确 Makefile (/htk-3.4.1/HLMTools/Makefile
) 中第 77 行的额外缩进后,HTK编译错误:
Makefile:77: *** 缺少分隔符(您是指 TAB 而不是 8 个空格吗?)。停止。
已经消失,但我仍然无法在make all
上进行编译:
$ make all
(cd HTKTools && make all) \
|| case "" in *k*) fail=yes;; *) exit 1;; esac;
make[1]: Entering directory '/home/zeesy/htk-3.4.1/HTKTools'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/zeesy/htk-3.4.1/HTKTools'
(cd HLMTools && make all) \
|| case "" in *k*) fail=yes;; *) exit 1;; esac;
make[1]: Entering directory '/home/zeesy/htk-3.4.1/HLMTools'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/zeesy/htk-3.4.1/HLMTools'
在 make all
之前,运行 ./configure --prefix=/tmp
会导致错误:
config.status: WARNING: HLMTools/Makefile.in seems to ignore the --datarootdir setting
适用于 HTKLib
、HLMLib
、HTKTools
和 HLMTools
。它还将 Makefile 的第 77 行重置为四重缩进制表符。
我安装了gcc-multilib
。基于this post ,我安装了 libc6:i386
zlib1g:i386
lib32ncurses5
和 lib32z1
以便在 64 位上运行这个 32 位程序计算机。
有人遇到过这个问题吗? VoxForge HTK install guide 的第 4 步建议需要 gcc 3.4 编译器兼容模块。
最佳答案
根据 MadScientist 的建议,我首先看到了错误的 Makefile。我一直在查看/htk-3.1.4/Makefile
,当时需要编辑的文件是/htk-3.1.4/HLMTools/Makefile
。没有彻底阅读错误消息的情况。
在第 77 行收到相同的错误消息后
missing separator (did you mean TAB instead of 8 spaces?).
我在 Atom 中运行了 Spaces to Tabs,并更正了默认 Makefile 中的四重制表符。
make all
命令最初运行成功,但由于我无法访问 ls/tmp/bin.linux
,我尝试 make all
再次收到第二条错误消息
make[1]: Nothing to be done for 'all'
解决此问题的方法是运行 make clean
(请参阅 this post )。然而,Nikolay Shmyrev 指出,这个错误意味着一切都已编译,因此“没有什么可做的”。
我现在在访问 /tmp/bin.linux
时遇到问题,但会在其他地方处理这个问题。
摘要: make[1]: Nothing to be did for 'all'
错误意味着所有内容都已编译。
关于c - HTK编译错误: make[1]: Nothing to be done for 'all' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57597548/