2012-03-11 2 views
0

Я не понимаю, что входит в make-файл, и что происходит в файле заголовка.Каков формат/цель файлов заголовков и файлов makefile? (C)

Из того, что я понимаю Makefile имеет формат:

target: dependencies 
     instructions 

Но это не работает для меня. Вот именно то, что я сделал:

library: login.o linked.o cipher.o 
    gcc -o library login.o linked.o cipher.o 

login.o: login.c linked.h 
    gcc -c login.c 

linked.o: linked.c cipher.h 
    gcc -c linked.c 

cipher.o: cipher.c 
    gcc -c cipher.c 

Когда я типа «сделать Makefile» в командной строке говорит составитель «сделать: Ничего не было сделано для` Makefile '». Я предполагаю, что у меня неправильный формат. Кроме того, для чего нужна библиотека? Я только что скопировал его. Есть ли у каждого make-файла один файл?

Также есть расширение для make-файлов (makefile.txt, makefile.c)?

И make make-файлы должны быть названы makefile? Могу ли я назвать его taliasmakefile или makefile69 или lykeim2freespirited4skool или iwanaBahippie?

Что касается файлов заголовков, я не могу найти четких примеров того, что именно происходит в них. Включите ли вы переменные, к которым вы хотите получить доступ к другим файлам? Или прототипы функций?

Я действительно не знаком с C. Может ли кто-нибудь объяснить это мне, как будто мне 5?

+1

Вы не указали инструкции, а не пробелы? Очень важно, чтобы вы делали это с вкладками. – Flexo

+1

Makefiles полностью ортогональны C.Это всего лишь обычный инструмент для автоматизации компиляции исходного кода C в приложение. Если вы хотите понять, как работают файлы заголовков, я предлагаю получить [хорошую книгу] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list). –

ответ

4

Когда вы запустите make, он будет искать файл под названием Makefile; вам не нужно указывать make-файл для использования. Без каких-либо аргументов make будет (обычно) создавать первую цель в файле. Makefiles не нуждается в расширении, и его можно назвать другими вещами (но тогда вы должны сообщить make, где искать).

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

1

есть два этапа для создания программного обеспечения C. ..... компиляция и привязка.

скомпилировать файлы .C в объектные файлы.

Связывание принимает все эти объектные файлы и смешивает их вместе в библиотеку или исполняемый файл.

Файлы заголовка используются во время компиляции ... у него есть информация о вещах, которые вы должны найти во время ссылки. то есть должна существовать функция, называемая X, должна быть переменная, называемая Y и т. д. или она определяет вещи, поэтому они являются общими для нескольких файлов C. например, MAX_WIDGETS. т. е. это способ для одного файла .c использовать что-то, что реализовано в другом .c файле или определить вещи, которые являются общими для файлов .c.

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

0

В make-файле ничего плохого нет, но нет цели, называемой «makefile». Используйте опцию -f для выбора файла: make -f makefile. Но вам это не нужно, поскольку ваш файл имеет одно из стандартных имен (Makefile, makefile, ...).

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