Я пытаюсь создать Makefile для моей программы на Raspbian (Raspberry Pi). Моя программа состоит из кучи файлов .c и .h. Я посмотрел на бесчисленные Make-файлы, но я просто не понимаю, как это работает с несколькими файлами. В Makefile всегда есть файлы .o, но, как я понимаю, объектные файлы являются результатом компиляции, поэтому у меня нет o. Файлы, когда я пытаюсь скомпилировать мои файлы .c.Создание Makefile в Raspbian
Пожалуйста, объясните мне, как это работает.
Редактировать:
Спасибо. Поэтому я попробовал это, и он начинает компиляцию, но есть «множественное определение» ошибок. Пример:
Это мои файлы:
main.c main.h
calibration.c calibration.h
file.c file.h
frame.c frame.h
gamepad.c gamepad.h
gpio.c gpio.h
uart.c uart.h
types.h
это мой Makefile:
all: main
main: main.o calibration.o file.o frame.o gamepad.o gpio.o uart.o
%.o: %.c
gcc -c -std=c99 -Wall $< -o [email protected] -lncurses
Где я могу поставить 'types.h'? С каждым файлом я
Вы скомпилируете файлы источника ('.c') * в * object (' .o'). Для 'gcc' добавьте опцию' -c'. Затем, когда у вас есть ваши объектные файлы, вы связываете их вместе. Если вы правильно настроили свои зависимости, только исходные файлы, которые вы измените, будут перекомпилированы в объектные файлы при вызове 'make'. –
Итак, я компилирую файлы .c по одному, а затем создаю файл makefile, где я связываю все файлы объектов вместе? – user3030653
@ user3030653: Файл make не может сделать этого.Если ваша реальная проблема заключается в компиляции и связывании нескольких источников, а не с конкретной потребностью в make-файлах, тогда IDE, такая как Code :: Blocks, сделает это для вас и будет доступна на RPi через aptget и имеет другие преимущества, такие как GUI интерфейс для GDB и подсветки синтаксиса кода и навигации. – Clifford