Linux Makefile使用指南:避开常见误区与陷阱

379 ℃

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故障排查

上面是“Linux Makefile使用指南:避开常见误区与陷阱”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_14392.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

js获取pdf文件流直接打印
如何在Git中设置忽略一个文件或文件夹被?
帝国cms比较高效的随机调用方法
nodejs如何配置mysql数据库
van-datetime-picker只显示年份(改造后)