学习Makefile笔记

一常用函数

1wildcard

 SOURCES= $(wildcard *.c)  

这行会产生一个所有以 '.c'结尾的文件的列表,然后存入变量 SOURCES

 

2patsubst

OBJS =$(patsubst %.c,%.o,$(SOURCES)).................(1)

三个参数,第一个参数是patsubst+匹配格式,第二个参数是目标转换成的匹配格式,第三个参数是源字符串

OBJS =$(FILES:%.c=%.o)  作用与命令(1)相同


3addprefix

 $(addprefix <prefix>,<names...>)

把前缀<prefix>加到<names>中的每个单词后面,返回加过前缀的文件序列

4notdir

notdir把展开的文件的路径去掉,只显示文件名而不包含其路径信息

 FILES =$(notdir $(SOURCES))

这行的作用是把上面以'.c'结尾的文件的文件列表中附带的路径去掉,只显示符合条件的文件名。

 

5filter

函数$(filter,<pattern…>,text)

保留text中符合<pattern>中的字符串

 

6firstword

函数$(firstword<text>),功能取回<text>中第一个单词

二自动变量

自动变量含义
$@目标集合
$%当目标是函数库文件时,表示其中的目标文件名
$<第一个依赖目标。如果依赖目标是多个,挨个表示依赖目标
$?比目标新的依赖目标的集合
$^所有依赖目标的集合,去除重复的依赖目标
$+所有依赖目标的集合,不去除重复的依赖的目标
$*这个是GNU make特有的,其他的make不一定支持

三常用的变量名


四制定Makefile

make -f test.mk

五自己写的Makefile模板

CXX=g++
CC=gcc

BIN_DIR=bin
SRC_DIR=src
INCLUDE_DIR=-I./include -I./include1
SOURCES=$(wildcard $(SRC_DIR)/*.cpp)
OBJECTS=$(patsubst %.cpp, %.o, $(SOURCES))
INCLUDE=$(wildcard $(INCLUDE_DIR)/*)
CXXFLAGS=
LDFLAG=


BIN=$(BIN_DIR)/aaa

.PHONY=all clean

all:$(BIN)

$(BIN):$(OBJECTS)
	@echo "aa"
	$(CXX) -o $@ $^ 
%.o:%.cpp
	@echo "bb"
	$(CXX) $(INCLUDE_DIR) -c $(CXXFLAGS) -o $@ $^ $(LDFLAG)
        

clean:
	rm -rf $(BIN) $(OBJECTS)



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴回答你关于野火嵌入式Linux学习的问题!以下是一些学习笔记的建议: 1. 了解嵌入式系统:首先,你需要了解嵌入式系统是什么以及它们与桌面操作系统的区别。嵌入式系统通常用于特定的应用领域,例如智能家居、汽车电子和工业控制等。 2. 学习Linux基础知识:野火嵌入式Linux是基于Linux内核的操作系统,所以你需要掌握Linux的基础知识,包括文件系统、进程管理、设备驱动程序等。 3. 硬件平台了解:野火嵌入式Linux有不同的硬件平台,例如野火开发板。你需要学习如何操作和配置这些硬件平台,并了解它们的特性和限制。 4. 交叉编译环境设置:为了在PC上开发嵌入式系统,你需要设置一个交叉编译环境,以便能够编译和调试嵌入式应用程序。这涉及到安装和配置交叉编译工具链。 5. 内核定制和驱动程序开发:学习如何定制Linux内核以满足特定需求,并开发设备驱动程序以支持外部硬件。 6. 应用程序开发:掌握嵌入式应用程序的开发技术,包括使用C/C++语言、Makefile和调试工具。 7. 调试和故障排除:学会使用调试工具和技术来定位和解决嵌入式系统中的问题。 8. 实际项目经验:通过参与实际的嵌入式项目或完成一些小型项目来应用你的知识和技能。 这些只是一些学习笔记的建议,野火嵌入式Linux学习需要不断的实践和探索。希望这些对你有帮助!如果你有任何进一步的问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值