如何获得我的C程序的makefile,它将构建/编译我的程序并生成一个 可执行。这位执行官应该能够运行我的c程序???
答案 0 :(得分:2)
将makefile另存为makefile
或Makefile
:
.PHONY: all
all : progname
progname: all-objects
.PHONY
将目标all
标记为不是文件目标all
是第一个默认目标,取决于progname
(只是make all
有效)progname
取决于所有对象文件,因此会将它们链接在一起。如果要覆盖规则的默认操作,请编写自己的配方 每个命令行必须缩进一个选项卡(不要使用空格)。
GNU make的参考:http://www.gnu.org/software/make/manual/make.html
内置规则的参考:https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html
答案 1 :(得分:0)
使用此内容在同一路径上创建名为Makefile
的文件:
CC = gcc
CFLAGS = -std=c99 -pedantic -Wall
OBJECTS = filename.o
all: appname
filename.o: filename.c
$(CC) $(CFLAGS) -c filename.c
appname: $(OBJECTS)
$(CC) $(OBJECTS) -o appname
注意:必须有一个"标签"
之前(不是空格)$(CC) $(CFLAGS) -c filename.c
和
$(CC) $(OBJECTS) -o appname
然后运行:
make
编辑:一个例子:
david@debian:~$ cat demo.c
#include <stdio.h>
int main(void)
{
return 0;
}
david@debian:~$ cat Makefile
CC = gcc
CFLAGS = -std=c99 -pedantic -Wall
OBJECTS = demo.o
all: demo
demo.o: demo.c
$(CC) $(CFLAGS) -c demo.c
demo: $(OBJECTS)
$(CC) $(OBJECTS) -o demo
david@debian:~$ make
gcc -std=c99 -pedantic -Wall -c demo.c
gcc demo.o -o demo