Make выкинул ошибку но нет подробного сообщения об ошибке
Вот последние несколько строк из результатов выполнения команды "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-м уровне make-файла) и [i_tm]
означает, что сборка цели i_tm
не удалось. Вам нужно оглянуться назад в выводе команды make раньше, чем вы нам показали, и найти ***
строка ошибки для построения i_tm
цель и посмотреть, какие ошибки были сгенерированы там.