Makefile: Error1 - PullRequest
       1

Makefile: Error1

8 голосов
/ 27 октября 2010

У меня очень простая программа на c:

int main()
{
  return(1);
}

и простой Makefile:

all:
    gcc -ansi -pedantic -o tmp tmp.c
    ./tmp

Однако, когда я набираю make, я получаю следующее сообщение об ошибке:

$ make
gcc -ansi -pedantic -o tmp tmp.c
./tmp
make: *** [all] Error 1

Какую очевидную вещь мне не хватает?

Ответы [ 3 ]

23 голосов
/ 27 октября 2010

Make завершается с ошибкой, если любая выполняемая команда завершается с ошибкой.

Поскольку ваша программа завершает работу с кодом 1, make видит это как ошибку, а затем сама возвращает ту же ошибку.

Вы можете указать make игнорировать ошибки, поместив - в начале строки следующим образом:

-./tmp

Подробнее об обработке ошибок вы можете прочитать в make-файлах здесь .

5 голосов
/ 27 октября 2010

Это потому, что ваша программа возвращает 1.

Делает компиляцию с использованием gcc, которая проходит нормально (возвращает 0), поэтому она продолжает выполнение, но ваша программа возвращает ненулевое значение, поэтому make сообщает об этом как об ошибке.

Программа при успешном завершении должна вернуть 0 и в противном случае вернуть ненулевое значение.

5 голосов
/ 27 октября 2010

Вы возвращаете код ошибки 1 из вашего приложения. Задача Make - сообщить об этом как об ошибке!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...