这个make文件有什么问题?

时间:2012-03-28 10:54:20

标签: c makefile

大家好我想创建一个简单的make文件并在cygwin中执行。 这是文件内容

test: test.c
       gcc -c test.c -O3 -Wall -I.
test1: test1.c
              gcc -c test1.c -O3 -Wall -I.

当我执行此操作时,只有第一个文件被编译而不是第二个文件。任何人都可以解释为什么以及正确的方法是什么?

3 个答案:

答案 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是一种混淆的方法。