2016-10-06 6 views
-6

Я пытаюсь скомпилировать основной файл, который использует заголовок. У меня есть все файлы в моем каталоге: card.c, deck.c header.h и main.c enter image description herec - скомпилировать основной файл с исходными файлами и заголовком

Вопрос заключается в том, что когда я делаю Gcc main.c Я получаю это: enter image description here

Кажется, что он не распознает файлы источника и заголовка, поэтому мои компиляционные команды что-то пропускают. Спасибо

+0

Какую именно команду вы используете для компиляции своей программы? – Phil

+0

gcc main.c. Нужно ли мне сначала использовать gcc заголовок и другие исходные файлы? – Walker

+0

Каковы ваши «команды компиляции»? –

ответ

1

У вас есть исходные файлы card.c, deck.c и main.c. Разумно предположить, что card.c и deck.c определяют функции, по крайней мере один из которых вызван чем-то в main.c, иначе вам не понадобится header.h. Предположительно, функции, названные в ваших ошибках ссылок, относятся к числу таких.

Команда

gcc main.c 

попытки скомпилировать код в main.c и связать его, чтобы сформировать полную программу, но не достаточно для полной программы, потому что некоторые из необходимых функций определены (реализовано) в других исходных файлах. Об этом жалуется компоновщик.

Если вы хотите скомпилировать main.c в объектный файл, но не связать его, то вам нужен -c варианта:

gcc -c main.c 

Если вы хотите построить полную программу с одним пробегом gcc, то вы должны указать все необходимые источники:

gcc main.c deck.c card.c 

в последнем случае, вы также можете использовать опцию -o указать имя, отличное от a.out для исполняемого файла.

0

Вы должны поместить все ваши файлы .c в качестве входных данных в gcc. Вы можете найти много документации для gcc с Google. Например: http://www.network-theory.co.uk/docs/gccintro/gccintro_11.html.

+0

Получил. Спасибо за эту ссылку. Я сделал gcc main.c deck.c card.c, и выходной файл правил отлично с ./main – Walker

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