Makefile结构

来源:互联网 发布:c语言 switch case 编辑:程序博客网 时间:2024/06/05 09:34

1、’#’表示注释

2、变量定义

VAR=test 定义变量VAR,强制赋值为test
VAR+=app 在VAR之前定义的值后面再追加app这个值
VAR?=testapp 如果之前VAR没有被定义,则定义并使用testapp;否则使用之前的值

3、格式及注意事项:

(1)第一条目标为总的目标;

(2)依赖可以是文件(目录)或为其他目标动作可以是Linux命令;

(3)动作的那一行第一个字符必须是以TAB键

target:   depend1  depend2  file.c ...[TAB]  action1  [TAB]  action2target1:[TAB]  action1 [TAB]  action2

Makefile实例解释说明:

在Makefile里的变量使用需要${}说明;

#定义变量APP=link#GCC=arm-linux-gccGCC=gccLIBNAME=linklib#需要的C文件SRCS+=linker.c add.c#第一个目标也是总目标,此目标依赖shared_lib、static_lib这两个小目标。all:  shared_lib static_lib    ${GCC} main.c -o ${APP} -L. -l${LIBNAME}#'@'符用来把打印输出给屏蔽掉。#生成动态库shared_lib:    @${GCC} -shared -fPIC  ${SRCS} -o lib${LIBNAME}.so #生成静态库static_lib:    @${GCC} -c ${SRCS}    @ar -rcs lib${LIBNAME}.a *.o#拷贝生成的link文件到/tfpt文件夹下install:    cp ${APP} /tftp#清除生成的.o文件clean:    rm -f *.o#清除动态库静态库和可执行文件distclean: clean    rm -f ${APP}    rm -f *.a     rm -f *.so

4、关于Makefile的命令

make 找makefile或Makefile文件执行总的目标
make clean 执行makefile文件中的clean目标
make -C directory 进入到directory文件夹中去执行总的目标
make clean -C direcotry 进入到directory文件夹中去执行clean目标
make -f comm_makefile 通过-f选项指定一个makefile文件
make VAR=value 给Makefile传一个参数VAR,其值为value

原创粉丝点击