Первое, на что следует обратить внимание, это то, что вы, возможно, идете по пути создания некоторых сложных для управления тестов.Целью модульного тестирования является тестирование одного модуля за раз, но здесь у вас есть тест, который потребует, чтобы два модуля были скомпилированы вместе для правильного тестирования.Хотя иногда это отличное решение (как правило, когда два устройства чрезмерно тесно связаны, и вы не можете изменить их), обычно это не лучшее решение.
Один из вариантов - использовать макет вместоnode.c вместо вызова реальной версии функции.Это дает вам большой контроль при тестировании lca.c как отдельного устройства.
Это еще не решает вашу проблему напрямую, но я просто чувствовал, что должен указать на это, прежде чем вы продвинетесь намного дальше.
В заключение, Job Vranish из Atomic Object написал действительно хорошую статью о написании простого make-файла с отслеживанием зависимостей.Вы можете найти его здесь: https://spin.atomicobject.com/2016/08/26/makefile-c-projects/
Он предлагает, чтобы, если вы используете Clang или gcc, вы генерировали файлы зависимостей как побочный эффект компиляции, добавляя флаги -MMD -MP.Затем вам нужно вытащить зависимости в ваш проект следующим образом:
DEPS := $(OBJS:.o=.d)
-include $(DEPS)
Это может быть просто в нижней части вашего make-файла, и все зависимости (после их генерации) должны быть извлечены автоматически.
Если вы НЕ используете gcc, вам нужно добавить генерацию зависимостей либо в ваш шаг сборки, либо в отдельный шаг.
Счастливого тестирования!