Я скачал файл tar.gz, распаковал его, и есть 3 файла: Makefile
, program.c
и protocol.h
Я открыл их в gedit и Makefile
содержит только один line program : program.c protocol.h
В program.c
я думаю, что есть основная программа (много строк)
И protocol.h
определяет только основные переменные (только #define
строк и short
, char
и т. д. Должен ли я скомпилировать только program.c
или protocol.h
? Или скомпилировать их все?
Вы не компилируете заголовочный файл (хотя возможно сделать так), Вы компилируете исходный файл, который мог бы включать некоторые заголовочные файлы, но были ли необходимые заголовочные файлы включены в исходный файл, который это не (или не должен быть), что-то до Вас, это - что-то до разработчика: если program.c
был записан правильно, это перечислит свои необходимые заголовочные файлы в его #include
происходят операторы, которые будут затем заменены препроцессором при предварительной обработке времени со строками, содержавшимися в соответствующем заголовочном файле перед компиляцией: таким образом скомпилировать его просто любое использование make
:
make
или gcc
:
gcc program.c
Но если Вы действительно хотите удостовериться это protocol.h
был включен в program.c
можно работать:
grep protocol.h program.c
И если команда возвращается #include "protocol.h"
, protocol.h
был включен в program.c
.