Makefile 书写规则:
总目标:依赖1依赖2...
目标1:依赖
<tab>命令
目标2:依赖
<tab>命令
/* ######## makefile #######*/
helloworld:hello.o main.o
gcc -o helloworld hello.o main.o
hello.o:hello.c
gcc -c hello.c
main.o: main.c
gcc -c main.c
Makefile有一个隐藏的规则:
就是会根据.c生成相应的.o,因此上面makefile可以改成:
/* ######## makefile #######*/
helloworld:hello.o main.o
gcc -o helloworld hello.o main.o
2.伪目标:
/* ######## makefile #######*/
helloworld:hello.o main.o
gcc -o helloworld hello.o main.o
clean:
rm -f hello.o main.o
3.多个总目标
当makefile需要生成多个总目标时,就需要使用伪目标来实现。
虚目标:总目标1总目标2
总目标1:依赖11依赖12...
目标11:依赖
<tab>命令
目标12:依赖
<tab>命令
总目标2:依赖21依赖22...
目标21:依赖
<tab>命令
目标22:依赖
<tab>命令
/* ######## makefile #######*/
all: helloworld1 helloworld2
helloworld1:hello1.o main1.o
gcc -o helloworld1 hello1.o main1.o
helloworld2:hello2.o main2.o
gcc -o helloworld2 hello2.o main2.o
4.makefile中使用变量
CC = gcc
helloworld:hello.o main.o
$(CC)-o helloworld hello.o main.o
hello.o:hello.c
$(CC)-c hello.c
main.o: main.c
$(CC)-c main.c
5.添加自定义的目录和库
gcc -o main main.cpp -I x264/include -L x264/lib -lx264 -lm