博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见的makefile写法【转】
阅读量:5843 次
发布时间:2019-06-18

本文共 1669 字,大约阅读时间需要 5 分钟。

转自:

版权声明:本文为博主原创文章,未经博主允许不得转载。1、目标名称,摆脱手动设置目标名称[cpp] view plain copy    TARGET = $(notdir $(CURDIR))      all:$(TARGET)          CMD....  $(CURDIR) 表示Makfile当前目录全路径$(notdir $(path)) 表示把path目录去掉路径名,只留当前目录名这样就可以得到Makefile当前目录名称,用目录名作为目标程序名是一个不错的选择2、使用include,把所有Makefile共享的设置包含进来[cpp] view plain copy    BASE_DIR = /root/DM36x      include $(BASE_DIR)/Rules.make            XDC_PATH = $(DMAI_INSTALL_DIR)/packages  [cpp] view plain copy    DMAI_INSTALL_DIR在Rules.make中已经设置过,这样,需要使用DMAI_INSTALL_DIR变量的时候只要include 这个Rules.make接可以了  3、遍历遍历所有特定的源文件[cpp] view plain copy    SOURCES = $(wildcard *.c)      HEADERS = $(wildcard *.h)  如果当前目录先有 main.c  func.c  func.h 这样SOURCES变量就等于main.c  func.cHEADERS变量就等于func.h这样就每次添加源文件后 就不需要重新修改makefile了4、替换文件名称[cpp] view plain copy    OBJFILES = $(SOURCES:%.c=%.o)  如果SOURCES等与3中的main.c和func.c这样OBJFILES就等于main.o func.o 同样摆脱了手动修改编译的中间文件名5、交叉编译设置[cpp] view plain copy    VERBOSE = @      COMPILE.c = $(VERBOSE) $(MVTOOL_PREFIX)gcc $(C_FLAGS) $(CPP_FLAGS) -c      LINK.c = $(VERBOSE) $(MVTOOL_PREFIX)gcc $(LD_FLAGS)  6、编译[cpp] view plain copy    $(OBJFILES):    %.o: %.c $(HEADERS)                 @echo Compiling $@ from $<..                $(COMPILE.c)  -o $@ $<  7、[cpp] view plain copy    install:    $(if $(wildcard $(TARGET)), install_$(TARGET))      install_$(TARGET):          @install -d $(EXEC_DIR)          @install $(TARGET) $(EXEC_DIR)          @install $(TARGET).txt $(EXEC_DIR)          @echo          @echo Installed $(TARGET) binaries to $(EXEC_DIR)..  先判断当前目录是否有$(TARGET),如果有,就执行伪目标install_$(TARGET),这个展开了就相当于install_app,如果$(TARGET)等于app的话

 

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/7211730.html,如需转载请自行联系原作者

你可能感兴趣的文章
Java中的内存处理机制和final、static、final static总结
查看>>
Java位运算符
查看>>
linux RAID10测试
查看>>
(OK) Linux epoll模型—socket epoll server client chat
查看>>
学会写出"图形界面+数据库"的程序要多长时间?
查看>>
药店药品管理方案,药店药品的盘点方案,假设进行药店药品的高效盘点?药品盘点步骤是?...
查看>>
<html>
查看>>
dp4--codeVs1043 方格取数
查看>>
UVA 10733 - The Colored Cubes(Ploya)
查看>>
【python】如何查看已经安装的python软件包和版本
查看>>
Eclipse自己定义keystore
查看>>
Silverlight入门:第五部分 - 整合其它控件
查看>>
watch 命令
查看>>
KendoUI和wijmoUI 它们的Grid比较 20120423
查看>>
Object.wait()与Object.notify()的用法
查看>>
C语言对结构体何时用-> , 何时用.
查看>>
ReentrantLock和synchronized两种锁定机制
查看>>
Myeclipse的web项目移植到Eclipse中需要添加的包
查看>>
Matlab设置字体大小
查看>>
mkdir命令的-p和-m
查看>>