linux常用的工程管理器,Linux工程管理器——make

一、定义

工程管理器,顾名思义,是指管理较多的文件

Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件文件的内容来执行大量的编译工作 。

二、使用命令简介

makefile是make读入的惟一配置文件,因此本节的内容实际就是讲述makefile的编写规则。在一个makefile中通常包含如下内容:

a.需要由make工具创建的目标体(target),                 通常是目标文件或可执行文件;

b.要创建的目标体所依赖的文件;

创建每个目标体时需要运行的命令(command),这一行必须以制表符(tab键)开头

格式如下:

target:denpendcy_files

command /* 该行必须以Tab键开头 */

如:

hello.o: hello.c hello.h

gcc -c hello.c -o hello.o

接着在终端执行make hello.o命令,make将自动执行gcc -c hello.c -o hello.o,生成hello.o文件

3.makefile变量

(1)在makefile中的变量定义有两种方式:一种是递归展开方式,另一种是简单方式

1)递归展开方式:VAR=var

递归展开方式定义的变量是在引用该变量时进行替换的,即如果该变量包含对其他变量的引用,则在引用该变量时一次性将内嵌的变量全部展开。但是它也有严重的缺点,如不能在变量后追加内容(因为语句:CFLAGS=$(CFLAGS)-O在变量扩展过程中可能导致无穷循环)。

例如:

OBJS = kang.o yul.o

CC = gcc

CFLAGS =  -Wall  -O  -g

david : $(OBJS)

$(CC)  $(OBJS)  -o david

kang.o : kang.c kang.h

$(CC)  $(CFLAGS)  -c  kang.c  -o  kang.o

yul.o : yul.c yul.h

$(CC)  $(CFLAGS)  -c  yul.c  -o  yul

2)简单扩展方式:VAR:=var

简单扩展方式变量的值在定义处展开,并且只展开一次,因此它不包含对其他变量的引用,从而消除变量的嵌套引用。

(2)makefile中的变量分为用户自定义、预定义变量、自动变量和环境变量

1)预定义变量包含了常见编译器、汇编器的名称及其编译选项

199a237c40ee8c74a04518ec2f515a9f.png

2)自动变量

59965220a01d559af7c1425922c7c59a.png

标签:管理器,变量,kang,make,makefile,yul,Linux,hello

来源: https://www.cnblogs.com/tansuoxinweilai/p/11630391.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值