我是makefile的新手。 我想要的是,当一个特定的C文件被更改时,我想运行一个命令。最后从一个文件夹中,任何一个C文件都会被更改,然后我想用该文件名运行相同的命令。 。例如。
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 $<
答案 0 :(得分:0)
我找到了这个问题。我已将目标“StartUnitTest”更改为以下内容,现在正在运行。删除了回显消息。
StartUnitTest: $(TEST_OBJS)
谢谢MadScientist。 “make -d”确实帮助我找到了问题。