【问题标题】:Trying to run a Makefile from the command line - '.' is not recognised尝试从命令行运行 Makefile - '.'不被认可
【发布时间】:2019-03-08 08:57:05
【问题描述】:

我需要一些帮助。我在 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 位于?

【问题讨论】:

  • cygwin.com 可以在 Windows 上快速轻松地安装。它不是一个新的操作系统。在设置中,选择要安装的 gcc。

标签: c cmd makefile path-variables


【解决方案1】:

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

.\func_test1.out > func_test1.youranswer

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

【讨论】:

  • 谢谢,但现在 'diff' 无法识别。
  • 不知道能不能安装一个可以正常运行Makefile的shell?或者如果重写Makefile以使用cmd更容易,并且在将其发送回老师时将其替换为原始文件?
  • @KeizerHarm diff 是 Windows 不附带的另一个标准 unix 工具。某处可能有一个diff.exe,但最简单的方法是不使用 Windows。
  • 对,在我已经运行缓慢的笔记本电脑上安装一个全新的操作系统可能不符合我的优先事项以及这项任务的截止日期......我想最好的选择是然后让我把这个 Makefile 翻译成 windows-speak。也可以教我一些命令。
  • @KeizerHarm 顺便问一下,你从哪里得到make 和gcc?
猜你喜欢
  • 2018-09-14
  • 2013-09-23
  • 1970-01-01
  • 1970-01-01
  • 2020-02-13
  • 1970-01-01
  • 2016-05-01
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多