嗨,大家好我想创建一个简单的make文件并在cygwin中执行。 这是该文件的内容这个make文件有什么问题?
test: test.c
gcc -c test.c -O3 -Wall -I.
test1: test1.c
gcc -c test1.c -O3 -Wall -I.
当我执行这个只有第一个文件是越来越编译,而不是第二个。任何人都可以解释为什么和什么是正确的方式?
嗨,大家好我想创建一个简单的make文件并在cygwin中执行。 这是该文件的内容这个make文件有什么问题?
test: test.c
gcc -c test.c -O3 -Wall -I.
test1: test1.c
gcc -c test1.c -O3 -Wall -I.
当我执行这个只有第一个文件是越来越编译,而不是第二个。任何人都可以解释为什么和什么是正确的方式?
它看起来像你的缩进是有点混淆。这些行开头的空格应该是单个制表符。
另外:
默认情况下,与第一目标
,如果你要编译的第二个文件,您将需要在命令行中键入make test1
指定目标开始。
这也是常见的添加一个名为all
目标。您可以在文件顶部添加以下内容:
all: test test1
你就忘记了-o标志:
test1: test1.c
cc -O3 -Wall -I. -o test1 test1.c
甚至更好:
test1: test1.c
cc -O3 -Wall -I. -o [email protected] $?
或者更短:(信任的内置宏)
CFLAGS += -O3 -Wall -I.
test1: test1.c
注:我故意省略测试:test.c部分。命名程序test
是混淆的秘诀。
试图用单一的标签仍然没有工作 – karthick 2012-03-28 10:58:39
@karthick:您是否尝试过做'让test1'?你使用什么命令? – 2012-03-28 11:03:37
我只是打字make。现在只有我发现我需要指定目录或全部包含并提及目标。谢谢马克。 – karthick 2012-03-28 11:06:24