
Makefile是Linux系统中不可或缺的工具,其独特的文件格式被用于描述软件程序的编译流程及其相互依赖关系。通过Makefile,用户可以轻松利用make命令来构建和管理项目。尽管其语法和规则相对直观,但在实际应用中仍有一些细节和特殊情况需特别关注,否则可能会导致编译失败或产生不可预见的结果。
1、ifeq语句的括号里面,不要随意使用空格
TmpDir = /Source
#下方的/Source后面空了几格
ifeq ($(TmpDir), /Source )
Result = They are equal
else
Result = They are not equal
endif
all:
@echo $(Result)
make之后其结果为 :
They are not equal
若把
ifeq ($(TmpDir), /Source )
改为
ifeq ($(TmpDir), /Source)
2、在mingw环境下使用路径时的陷阱
TARGET = Temp
# abspath 函数:获取其参数中的文件或者目录的绝对路径
APP_BASE = $(abspath ../..)
DEV_BLD_DIR = $(APP_BASE)/$(TARGET)/Build
TEMP = $(APPSRC:.c=.o)
APPOBJS_TMP = $(TEMP:.S=.o)
# addprefix 函数:把 APPOBJS_TMP 中的文件一一添加前缀 $(DEV_BLD_DIR)/
APPOBJS := $(addprefix $(DEV_BLD_DIR)/,$(APPOBJS_TMP))
APPDEPS_TMP = $(APPOBJS_TMP:.o=.d)
APPDEPS := $(addprefix $(DEV_BLD_DIR)/,$(APPDEPS_TMP))
all: Tmp.bin
-include $(APPDEPS)
......
#省略了若干内容
......
# subst 函数:把$@中的 Source 替换成 Build
# 该编译的命令,在编译源文件的同时,也生成了.d 依赖文件
$(DEV_BLD_DIR)/%.o: %.c
$(info Compiling $$@) $(CFLAGS) $(INCFLAGS) $
标签: Linux故障排查
上面是“Linux Makefile使用指南:避开常见误区与陷阱”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。
当前网址:https://m.ipkd.cn/webs_14392.html
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

Windows检查被占用的端口,以及如何使用命令提示符检查端口信息
今天学点啥APP最新版
在线电报码查询官网:提供在线查询和解码电报码的功能