问题
Following the official HTK Unix/Linux installation guide, I had similar issues to the ones described in this thread when trying to run make all
on HTK. I had initially been looking at the wrong Makefile (/htk-3.4.1/Makefile
), as suggested by MadScientist. After fixing the extra indentation on line 77 in the correct Makefile (/htk-3.4.1/HLMTools/Makefile
) generated by running ./configure --prefix=/tmp
, the HTK compile error:
Makefile:77: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
has disappeared, but I am still unable to compile on 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'
Prior to make all
, running ./configure --prefix=/tmp
results in the error:
config.status: WARNING: HLMTools/Makefile.in seems to ignore the --datarootdir setting
for HTKLib
, HLMLib
, HTKTools
and HLMTools
. It also resets line 77 of the Makefile to quadruple indented tabs.
I have gcc-multilib
installed. Based on this post, I installed libc6:i386
zlib1g:i386
lib32ncurses5
and lib32z1
in order to run this 32bit program on a 64bit computer.
Has anyone run into this problem? Step 4 of the VoxForge HTK install guide suggests that gcc 3.4 compiler compatibility modules are required.
回答1:
As suggested by MadScientist, I was at first looking at the wrong Makefile. I had been looking at /htk-3.1.4/Makefile
, when the file that needed to be edited was /htk-3.1.4/HLMTools/Makefile
. A case of not reading the error messages thoroughly.
After getting the same error message for line 77
missing separator (did you mean TAB instead of 8 spaces?).
I ran Spaces to Tabs in Atom, and corrected the quadruple tab in the default Makefile.
The make all
command initially ran successfully, but as I was unable to access ls /tmp/bin.linux
I attempted make all
again and received the second error message
make[1]: Nothing to be done for 'all'
The fix for this was to run make clean
(see this post). However, Nikolay Shmyrev has pointed out that this error means that everything has compiled, there for there is 'nothing to be done'.
I'm now having problems accessing /tmp/bin.linux
but will deal with that elsewhere.
SUMMARY: The make[1]: Nothing to be done for 'all'
error means that everything has already compiled.
来源:https://stackoverflow.com/questions/57597548/htk-compile-error-make1-nothing-to-be-done-for-all