大家好我想创建一个简单的make文件并在cygwin中执行。 这是文件内容
test: test.c
gcc -c test.c -O3 -Wall -I.
test1: test1.c
gcc -c test1.c -O3 -Wall -I.
当我执行此操作时,只有第一个文件被编译而不是第二个文件。任何人都可以解释为什么以及正确的方法是什么?
答案 0 :(得分:6)
看起来你的缩进有点混乱。这些行开头的空格应该是一个制表符。
此外:
默认情况下,make以第一个目标
开头
如果要编译第二个文件,则需要在命令行上键入make test1
来指定目标。
添加名为all
的目标也很常见。您可以在文件顶部添加:
all: test test1
答案 1 :(得分:0)
尝试将第二种情况的前导空格与第一种情况的前导空格进行匹配。关于适当的缩进很有趣
答案 2 :(得分:0)
你忘记了-o标志:
test1: test1.c
cc -O3 -Wall -I. -o test1 test1.c
甚至更好:
test1: test1.c
cc -O3 -Wall -I. -o $@ $?
或者更短:(信任内置宏)
CFLAGS += -O3 -Wall -I.
test1: test1.c
注意:我故意省略test:test.c部分。命名程序test
是一种混淆的方法。