понедельник, 18 февраля 2019 г.

Структура проекта и makefile

Понадобилось сделать хорошую прозрачную структуру проекта, чтоб не путаться. Нашел статью A Simple C++ Project Structure, где расписана типовая структура проекта. Исходные тексты держим в src, объектные файлы в build, тестовые в test, заголовочные файлы в include и т.д. Не очень понятно, это и есть full GNU C++ standard project? Мне и такой структуры хватит.  

Пришлось учится писать мейкфайлы под многопапочную структуру. А я в языке make не силен. Нашел, наконец, простое описание автоматических переменных (здесь). В выражении
                     all: library.cpp main.cpp
переменная $@ равна all, $< - это library.cpp, а $^ - это library.cpp main.cpp.

Сам makefile не выкладываю, он далек от идеала. Но принцип такой - компилируем исходники из src и tst в объектники, их отправляем в build. Затем все объектники собираем в бинарник, который отправляем в bin.

Комментариев нет: