Избегайте ошибки, но подробное сообщение об ошибке
Здесь последние несколько строк из вывода "make install" на корневом уровне /home/gm/TEST/:
make[3]: Leaving directory `/home/gm/TEST/tppf/tm/ipmgt'
ld ipfac.o ipfacV.o ipfac_rset.o ipfac_args.o ipfac_d2a.o ipfac_a2d.o ipfac_modr.o ipfac_mod.o ipfac_read.o ipfac_add.o ipfac_del.o ipfac_list.o ipfac_unlk.o ipfac_lock.o ipfac_util.o ipfac_lkid.o -r -o /home/gm/TEST/tppf/lib/ipfac_tppf.o
make[3]: Leaving directory `/home/gm/TEST/tppf/tm/ipfac'
make[2]: Leaving directory `/home/gm/TEST/tppf/tm'
make[1]: *** [i_tm] Error 2
make[1]: Leaving directory `/home/gm/TEST/tppf'
make: *** [i_tppf] Error 2
И Makefile под /home/gm/TEST/tppf/tm/ipfac содержит это правило:
install: ipfac.h $(TPPLIB)/ipfac_tppf.o
$(TPPLIB)/ipfac_tppf.o: $(PROPOBJS)
ld $(PROPOBJS) -r -o $(TPPLIB)/ipfac_tppf.o
Что-то не так с процессом связывания? Make должен был сказать мне, что такое ошибка на самом деле, но это не так.
Кстати, я думаю /home/gm/TEST/tppf/lib/ipfac _tppf. O был связан и создан успешно, или, по крайней мере, он был там в каталоге/home/gm/TEST/tppf/lib/после того, как make завершился с ошибкой и вышел.
Ответы
Ответ 1
Эта строка не является строкой ошибки. Вы можете сказать, что это удалось, потому что там не было сообщения об ошибке, для построения цели /home/gm/TEST/tppf/lib/ipfac_tppf.o
.
Ошибка здесь:
make[1]: *** [i_tm] Error 2
[1]
означает, что это был первый уровень make файла (обратите внимание, что рецепт, который вы цитируете, был на 3-м уровне makefile), а [i_tm]
означает, что сборка целевой i_tm
не удалась. Вам нужно еще раз взглянуть на результат make, раньше, чем вы показали нам, и найти строку ошибок ***
для построения цели i_tm
и посмотреть, какие там были ошибки.