HTK compile error: make[1]: Nothing to be done for

2019-08-27 02:40发布

问题:

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.