ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
967633 Топик полностью
AlexBi_ (28.12.2019 14:10, просмотров: 1) ответил fk0 на В выражении "tm.hex : m1.o m2.o" та же ошибка: если объектные файлы лежат в obj, то нужно писать "tm.hex: obj/m1.o obj/m2.o"... Ты хочешь от make странного: если m1.o изначально вообще везде отсутствует, то как make догадается, что нужен именно
Спасибо за разъяснения, стало понятнее как оно устроено. Путь - это часть имени, и vpath или %.o:%.c при поиске путь не откидывают, а используют его как часть имени. В файле зависимостей все имена с путями. Смутила строка из отладочного вывода Trying pattern rule with stem 'm1'. Показалось, что оно умеет откидывать путь, а потом искать по vpath. Но такого нет и vpath нужно использовать только для исходников. Сборка исходников через wildcard мне не подходит, т.к. из похожих наборов исходников собираются разные цели. Кстати, как лучше организовывать юнит-тестирование? Исходники распиханы по папкам, т.к. поиск нужного файла среди сотни исходников кажется более простым. Хотя, конечно, современные IDE позволяют все свалить в один каталог, но показывать будут в сортированном виде. Да и поиск файла в IDE не так востребован, переходы по именам, функциям и т.п. позволяют не задумываться где что лежит. Там, где исходников мало так и поступаю. Правда там make не нужен, тупо все пересобирать каждый раз оказывается не долго.