Я занимаюсь программированием на языке C для школы, и я обнаружил, что повторно использую библиотеки, которые я создал, снова и снова (стеки, ввод пользователей, обработка ошибок и т. Д.).Организация рабочего пространства для школы/Написание Makefile
Прямо сейчас, моя личная структура каталогов SVN выглядит следующим образом:
trunk/
|-- 2520
| `-- assignments
| |-- A2
| |-- Makefile
| |-- README
| |-- calculator.c
| |-- calculatorlib.c
| `-- calculatorlib.h
`-- libs
|-- misc
| |-- errorlib.c
| |-- errorlib.h
| |-- userinputlib.c
| `-- userinputlib.h
`-- stacks
|-- stacklib.c
`-- stacklib.h
Некоторые из этих файлов (userinputlib и errorlib) привыкает почти в каждом проекте я работаю по понятным причинам. Я хочу иметь возможность включать эти файлы в рабочую область проекта (2520/assignments/A2) без необходимости копировать файлы, потому что я не хочу копировать файлы, и я не хочу проверять в двух экземплярах того же файла в SVN.
Я хотел бы иметь файлы библиотеки в рабочей области проекта, поэтому мой Makefile работает без необходимости выполнять большую ручную конфигурацию (или пути жесткого кодирования).
Сначала я подумал о символических ссылках (поддержка SVN и tar), но я не могу скомпилировать свое задание, учитывая мои заголовки в другом каталоге.
Я могу вручную скомпилировать каждый заголовок в объектный файл и сделать окончательную ссылку, но я не уверен, как это сделать в Makefile автоматически.
Любая помощь или любая альтернатива тому, как у меня настроена настройка среды, приветствуется.
Спасибо!
EDIT: Я забыл упомянуть, что я искал Google и нашел несколько страниц, описывающих автоматическую генерацию зависимостей (возможно, я хочу это?) С помощью gcc -MM
и я прочитал по GNU Make Manual, но ничего не выскочили на меня.
Это именно то, что я пытался связать с моим ответом, но я думаю, что ваше немного более ясно. – timdev