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

标签 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.

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

最佳答案

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

.\func_test1.out > func_test1.youranswer

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

关于c - 尝试从命令行运行 Makefile - 无法识别 '.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621768/

相关文章:

c++ - 生成库的多个实例的 Makefile

c - 如何为 c 编写一个简单的 makefile

emacs - 从Emacs的子目录调用项目根目录下的makefile

java - 如何使用java将文件从Windows计算机发送(移动/复制)到服务器

python - 密码被用作命令

delphi - 在Delphi中使用ShellExecuteEx在同一命令行中运行多个任务

c - 如何从 char** 获取 char*

c - 什么??!??!运算符在 C 中做什么?

c - 按位运算符违反 Misra

c - scanf 取一个 struct 元素的值在 C linux 中给出 seg 错误