Я новичок в makefile.Все, что я хочу, это когда конкретный файл C будет изменен, я хочу выполнить одну команду.И, наконец, из одной папки, любой файл C будет изменен, тогда я хочу запустить ту же команду с этим именем файла..eg
ceedling test:filename
У меня есть простой файл с именем unittest.mk.Я не уверен, что следующий подход является правильным или нет.Я запускаю следующую команду для запуска этого файла.
make -f unittest.mk StartUnitTest
Вот файл unittest.mk:
TEST_OBJS += \
D:\ModApp\Apps\Paymark\ModApp_Paymark\build\test\out\test_txn_admin.o
D:\ModApp\Apps\Paymark\ModApp_Paymark\build\test\out\test_txn_admin.o: D:\ModApp\Apps\Paymark\ModApp_Paymark\test\test_txn_admin.c
echo $(*F)
echo $@
echo $<
StartUnitTest:
@echo Start Unit Test
$(TEST_OBJS)
@echo End Unit Test
Когда я запускаю этот файл, он выдает следующую ошибку:
Start Unit Test
D:\ModApp\Apps\Paymark\ModApp_Paymark\build\test\out\test_txn_admin.o
D:\ModApp\Apps\Paymark\ModApp_Paymark\build\test\out\test_txn_admin.o
process_begin: CreateProcess(D:\ModApp\Apps\Paymark\ModApp_Paymark\build\test\out\test_txn_admin.o, D:\ModApp\Apps\Paymark\ModApp_Paymark\build\test\out\test_txn_admin.o, ...) failed.
make (e=193): Error 193
make: *** [StartUnitTest] Error 193
Наконец, когда это сработает, на самом деле я хочу целевой шаблон с% следующим образом:
D:\ModApp\Apps\Paymark\ModApp_Paymark\build\test\out\%.o: D:\ModApp\Apps\Paymark\ModApp_Paymark\test\%.c
echo $(*F)
echo $@
echo $<