каков формат / назначение заголовочных файлов и make-файлов? (С) - PullRequest
0 голосов
/ 12 марта 2012

Мне неясно, что идет в make-файле, а что в заголовочном файле.

Из того, что я понимаю, make-файл имеет формат:

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

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

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

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

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

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

Ответы [ 3 ]

4 голосов
/ 12 марта 2012

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

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

1 голос
/ 12 марта 2012

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

компиляция превращает файлы .C в объектные файлы.

При связывании все эти объектные файлы объединяются и объединяются.в библиотеку или исполняемый файл.

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

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

0 голосов
/ 12 марта 2012

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

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