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 цель и посмотреть, какие ошибки были сгенерированы там.

Другие вопросы по тегам