2017-01-05 4 views
0

во-первых, спасибо всем.«Ничего не сделано для makefile»

Я был как бы 3 часа, пытаясь выяснить, что случилось, я провел глубокие исследования в Интернете, и я не нашел ничего, что сработало бы для меня. Я пробовал много примеров, которые закончились таким же образом; отсутствующий разделитель или ничего не нужно делать.

Что это может быть?

Мой .c и .h называются так же, как 3enRayaPunteros.c/ч

Вот код моего Makefile ':

Juego: 3enRayaPunteros.o 
gcc -o Juego 3enRayaPunteros.o 
3enRayaPunteros.o: 3enRayaPunteros.c 3enRayaPunteros.h 
    gcc -c 3enRayaPunteros.c 

Спасибо так много:

+0

Общей ловушкой с Make-файлами является то, что они ожидают символа табуляции, а не пробелов, которые не отображаются на веб-сайтах. – ti7

+0

Пожалуйста, покажите фактический файл makefile, действительную команду, которую вы вызывали, и фактическую ошибку, которую вы получили (через вырезание/вставку). Перефразируя и общие утверждения, такие как «это не работает», не могут быть помогли. _missing separator_ обычно состоит в том, что вы используете пробелы, когда должны использоваться символы TAB (обратите внимание, что он должен быть фактическим TAB, поэтому убедитесь, что ваш текстовый редактор не «помогает» преобразовать ваш TAB в пробелы). _Нечего делать, может означать, что ничего действительно не нужно делать, или ваш make-файл может быть неправильным, или вы можете вызвать неправильное обращение; мы не можем сказать. – MadScientist

ответ

1

Попробуйте

Juego: 3enRayaPunteros.o 
    gcc -o [email protected] $+ 

3enRayaPunteros.o: 3enRayaPunteros.c 3enRayaPunteros.h 
    gcc -c -o [email protected] $^ 

Вы хотите, чтобы ваш исполняемый файл Juego был зависеть от файла .o. Этот объектный файл должен зависеть от ваших исходных файлов .c, .h, ....

Общепринятой практикой является обращение к целевому имени с помощью [email protected], см. Все предварительные условия с $+ и обратитесь к первому требованию с помощью $^.

Отсутствует seperator обычно означает, что вы смешиваете spaces и tabs. Сделать очень неудобно, когда дело доходит до этого, так что NOT использовать tabs с отступом ничего, кроме рецептов. Ничто из того, что нужно сделать, означает то, что говорится в сообщении: для того, что вы просили, сделать нечего.

+0

Неверно, что вам нужно написать 'make Juego'. Нет ничего волшебного, чтобы сделать цель с именем 'all'; это всего лишь обычное соглашение во многих make-файлах. make сам всегда будет строить первую явную цель, которую он находит в make-файле, по умолчанию, независимо от его имени. – MadScientist

+0

Спасибо за разъяснение, отредактировал его. – sycko

+0

Большое вам спасибо! –

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