Я пытаюсь использовать GNU Make для автоматического преобразования набора файлов .mmpz
в файлы .ogg
с помощью lmms
. В настоящее время в lmms
есть ошибка, из-за которой он segfault после создания выходного файла приводит к тому, что make
выдает ошибки. Добавление -
перед правилом заставляет make
игнорировать ошибку и предотвращает удаление выходного файла, но сообщения об ошибках по-прежнему выдаются. Я пробовал следующее:
-@lmms -r $(MPPZDIR)/$*.mmpz -f ogg -o $(OGGDIR)/$*.ogg
-@lmms -r $(MPPZDIR)/$*.mmpz -f ogg -o $(OGGDIR)/$*.ogg 2> /dev/null
-@lmms -r $(MPPZDIR)/$*.mmpz -f ogg -o $(OGGDIR)/$*.ogg || true
которые все производят что-то вроде
/bin/sh: line 1: 3325 Segmentation fault (core dumped) lmms -r resources/mmpz/song.mmpz -f ogg -o content/music/song.ogg 2> /dev/null
Makefile:28: recipe for target 'content/music/song.ogg' failed
make: [content/music/song.ogg] Error 139 (ignored)
Учитывая, что segfault ожидается и не указывает на невозможность создания выходного файла, есть ли способ скрыть эту ошибку, пока ошибка не будет исправлена? make -i
тоже по-прежнему выдает ошибки.
|| true
имеет тот же эффект, что и ведущий-
, заставляя make игнорировать ошибку командыlmms
. - person Etan Reisner   schedule 03.10.2014|| true
абсолютно предпочтительнее лидирующего-
. Моя точка зрения заключалась в том, что оба они не нужны, как в третьей строке примера OP. - person Etan Reisner   schedule 03.10.2014