尝试从命令行-'。'运行Makefile无法识别

时间:2018-10-03 07:21:09

标签: c cmd makefile path-variables

我需要一些帮助。我在Windows 10上,并且尝试运行Makefile来构建一个小的C程序。我没有编写Makefile,这是老师规定的用于测试的文件(由于某种原因,我们无法编写自己的测试文件。)

这是完整的Makefile:

LIB=./lib/mylist.c

TEST1=func_test1
TEST2=func_test2
TEST3=func_test3
TEST4=func_test4
TEST5=func_test5

TEST1_EXE=$(TEST1).out
TEST1_SRC=./tests/$(TEST1).c
TEST2_EXE=func_test2.out
TEST2_SRC=./tests/func_test2.c
TEST3_EXE=func_test3.out
TEST3_SRC=./tests/func_test3.c
TEST4_EXE=func_test4.out
TEST4_SRC=./tests/func_test4.c
TEST5_EXE=func_test5.out
TEST5_SRC=./tests/func_test5.c

all:
    gcc -std=c99 -o $(TEST1_EXE) $(TEST1_SRC) $(LIB) -I./include/
    gcc -std=c99 -o $(TEST2_EXE) $(TEST2_SRC) $(LIB) -I./include/
    gcc -std=c99 -o $(TEST3_EXE) $(TEST3_SRC) $(LIB) -I./include/
    gcc -std=c99 -o $(TEST4_EXE) $(TEST4_SRC) $(LIB) -I./include/
    gcc -std=c99 -o $(TEST5_EXE) $(TEST5_SRC) $(LIB) -I./include/

test:
    ./$(TEST1_EXE) > $(TEST1).youranswer
    diff $(TEST1).youranswer $(TEST1).answer >> scoring_result
    ./$(TEST2_EXE) > $(TEST2).youranswer
    diff $(TEST2).youranswer $(TEST2).answer >> scoring_result
    ./$(TEST3_EXE) > $(TEST3).youranswer
    diff $(TEST3).youranswer $(TEST3).answer >> scoring_result
    ./$(TEST4_EXE) > $(TEST4).youranswer
    diff $(TEST4).youranswer $(TEST4).answer >> scoring_result
    ./$(TEST5_EXE) > $(TEST5).youranswer
    diff $(TEST5).youranswer $(TEST5).answer >> scoring_result

因此,很明显,我没有写它。这应该起作用。

无论如何,我打开cmd,转到目录,说“ make”,它似乎正在工作。但是当我写“ make test”时,再次根据老师的指示进行测试,我从cmd收到以下响应:

./func_test1.out > func_test1.youranswer
'.' is not recognized as an internal or external command, operable program or batch file.

所以它可能是缺少的路径变量(我一直在遇到那些问题)。但是我在世界上哪里找到文件夹“。”命令/ lexeme位于吗?

1 个答案:

答案 0 :(得分:3)

该Makefile是为类unix的shell(而不是cmd)编写的。特别是cmd需要

.\func_test1.out > func_test1.youranswer

(即\反斜杠,而不是/斜杠)。