常见makefile写法
原文地址:blog.csdn.net/ghostyu/article/details/7755177
1、目标名称,摆脱手动设置目标名称
- TARGET = $(notdir $(CURDIR))
- all:$(TARGET)
- CMD....
$(CURDIR) 表示Makfile当前目录全路径
$(notdir $(path)) 表示把path目录去掉路径名,只留当前目录名
这样就可以得到Makefile当前目录名称,用目录名作为目标程序名是一个不错的选择
2、使用include,把所有Makefile共享的设置包含进来
- BASE_DIR = /root/DM36x
- include $(BASE_DIR)/Rules.make
- XDC_PATH = $(DMAI_INSTALL_DIR)/packages
- DMAI_INSTALL_DIR在Rules.make中已经设置过,这样,需要使用DMAI_INSTALL_DIR变量的时候只要include 这个Rules.make接可以了
3、遍历遍历所有特定的源文件
- SOURCES = $(wildcard *.c)
- HEADERS = $(wildcard *.h)
如果当前目录先有 main.c func.c func.h
这样SOURCES变量就等于main.c func.c
HEADERS变量就等于func.h
这样就每次添加源文件后 就不需要重新修改makefile了
4、替换文件名称
- OBJFILES = $(SOURCES:%.c=%.o)
如果SOURCES等与3中的main.c和func.c
这样OBJFILES就等于main.o func.o
同样摆脱了手动修改编译的中间文件名
5、交叉编译设置
- VERBOSE = @
- COMPILE.c = $(VERBOSE) $(MVTOOL_PREFIX)gcc $(C_FLAGS) $(CPP_FLAGS) -c
- LINK.c = $(VERBOSE) $(MVTOOL_PREFIX)gcc $(LD_FLAGS)
6、编译
- $(OBJFILES): %.o: %.c $(HEADERS)
- @echo Compiling $@ from $<..
- $(COMPILE.c) -o $@ $<
7、
- 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的话
常见makefile写法相关推荐
- (原創) 标准的makefile写法 (C/C++)
一个很典型的Linux C/C++的makefile写法,其它的应用可根据此template修改. (注意每一行的前面若有空格,是tab,不是space) 1#Source file 2 3SR ...
- .php中js写法,js函数常见的写法以及调用方法
写在前面:本文详细的介绍了5中js函数常见的写法以及调用的方法,平时看别人代码的时候总是看到各种不同风格的js函数的写法.不明不白的,找了点资料,做了个总结,需要的小伙伴可以看看,做个参考. 1.常规 ...
- theos的makefile写法
theos的makefile写法与其他linux/unix环境下的makefile写法大同小异,但是对于makefile不熟悉的在导入一些dylib或者framework的时候就会变得很蛋疼. 对于f ...
- pbe近似_计算化学中的一些常见不良写法和用词
计算化学中的一些常见不良写法和用词 文/Sobereva @北京科音 First release:2015-Jun-28 Last update:2018-Apr-25 经常在看一些文章.帖子,以 ...
- Makefile写法入门心得
Makefile的写法入门心得 Makefile的出现使得编译过程极大地自动化了,省去了很多人工工作,非常方便.这里,小结一下写Makefile的一点小心得.嗯,对了,差点忘了一件事,同一个Makef ...
- linux下通用Makefile写法
linux编译多个源文件的程序比较麻烦,这下就需要通用的Makefile了,编译的时候执行一下make命令就OK,下面介绍通用makfile的写法. 假设现在有以下源文件:file1.h file1. ...
- 【转】makefile写法2
转自: 目的: 基本掌握了make的用法,能在Linux系统上编程. 环境: Linux系统,或者有一台Linux服务器,通过终端连接.一句话:有Linux编译环境. 准备: ...
- Makefile写法
概述 -- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...
- 我的makefile写法(一)
程序演示了一个通过tcp/ip通讯的server/client程序,都是简单的C程序.源码: server.c #include <stdio.h> #include <sys/ty ...
- 一个通用的makefile写法,自动推导文件的依赖关系
温习之用. 假设有两个头文件目录 header1,header2;两个cpp文件目录,src1,src2,一个lib目录 写一个完整的makefile步骤如下: 1 定义可执行文件的名称 TARGET ...
最新文章
- VS2010打不开创建的项目的解决方法
- 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1
- 基于Web Services建立Asp与Asp.Net之间Session数据桥的应用研究
- 50+企业数字化转型、管理的方法论,这本书到底有什么干货?
- HDU-1285-确定比赛名次
- ES6之let与const
- JavaWeb:Redis
- 智能优化算法(源码)-飞蛾扑火优化算法(MFO)
- 一、cadence ic 5141 ——软件下载地址以及常见错误
- win10专业版激活方法
- 苹果手机!!!fiddler自动抓抓包iphone上的http(或https)请求,手机设置完http代理,但是手机不能上网了。即(fiddler iphone http代理 不能上网)
- 科普知识:深网和暗网
- 小程序上传图片报错MiniProgramError “createUploadTask:fail url not in domain list“ 解决方案
- 【cocos creater】5.仿《弓箭传说》- 创建虚拟遥感
- 云南大学计算机学院导师信息,云南大学软件学院研究生导师介绍:姚绍文(教授,博士生导师)...
- 破解excel vba程序
- java libusb_libusb中断传输
- 【RTX操作系统教程】第6章 RTX操作系统源码方式移植
- vue element-ui 中走马灯自适应图片高度
- 增长复盘|我们在小程序实现裂变!日拉新1000+
热门文章
- linq判断集合中相同元素个数_高中数学:集合与函数概念知识点汇总
- 打包的时候不把配置文件加进去_苹果软件打包签名原理
- 示例1---从记事本中读取数值,然后写到数组中---切片,优化版本
- django mysql debug_django mysql db 日志无输出
- java 位与 取模_【Java基础】14、位与()操作与快速取模
- matlab 图片最多显示几张_matlab 如何一次显示多个图像,subplot不合适
- note同步不及时 one_续航800仅卖23万,比亚迪唐DM为啥却卖不过理想ONE?
- 左移寄存器vhdl_用VHDL实现的通用循环移位寄存器
- 菲律宾马尼拉华人区一大厦发生火灾 致1人遇难
- 1007. 素数对猜想 (20)