2014-10-21 2 views
-2

Привет я пытаюсь компилятор моего кода с помощью служебной программы, но я получаю сообщение об ошибке, какMakefile утилита не бросает ошибку

print.c:1:8: error: expected declaration specifiers or ‘...’ before string constant 
make: *** [print.o] Error 1 

, пожалуйста, помогите мне исправить сегодня первый раз я использую сделать утилиту

outfile: main.o print.o header.o 
    cc main.o print.o header.o -o outfile 
main.o: main.c 
    cc -c main.c -o main.o 
print.o: print.c 
    cc -c print.c -o print.o 
header.o: header.c 
    cc -c print.c -o print.o     
+5

Проблема существует в программе C ('print.c'). – BLUEPIXY

+0

Прочтите руководство. Например, [Руководство GNU рассматривает сообщения об ошибках и то, что они означают.] (Https://www.gnu.org/software/make/manual/html_node/Error-Messages.html) –

+3

Ваша строка для создания 'header.o 'довольно сломан. –

ответ

0

Как указано в комментариях, ошибка не обязательно в вашем Makefile, но из-за неудачной компиляции. В документации для error messages говорится:

Ошибки, которые являются фатальными, имеют префикс строки ***.

Сообщения об ошибках все либо начинается с имени программы (обычно make), или, если обнаружена ошибка в Makefile, имя файла и номер строки, содержащей проблему.

[foo] Error NN

[foo] signal description

Эти ошибки на самом деле не делают ошибки на всех. Они означают, что программа , которая вызывается в качестве части рецепта, возвращает код ошибки (Error NN), который интерпретирует как отказ, или он выходил в еще один ненормальный способ (с сигналом некоторого типа).

Например, на моей машине GCC возвращает состояние ошибки 127 для неудачной компиляции.

Смежные вопросы