makefile模板
Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中记录有文件的信息,在make时会决定在链接的时候需要重新编译哪些文件。Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文件有了改变,编译器会自动发现最终的生成文件已经过时,而应该重新编译相应的模块。
Linux应用层的Makefile通用模板
######################################
#
######################################
#source file
#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
SOURCE := $(wildcard *.c) $(wildcard *.cpp)
OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))#target you can change test to what you want
#目标文件名,输入任意你想要的执行文件名
TARGET := server#compile and lib parameter
#编译参数
CC := gcc
LIBS :=
LDFLAGS := -lpthread
DEFINES := -g
INCLUDE := -I.
CFLAGS := -Wall -O3 $(DEFINES) $(INCLUDE)
CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H#i think you should do anything here
#下面的基本上不需要做任何改动了
.PHONY : everything objs clean veryclean rebuildeverything : $(TARGET)all : $(TARGET)objs : $(OBJS)rebuild: veryclean everythingclean :rm -fr *.sorm -fr *.orm -fr $(TARGET)veryclean : cleanrm -fr $(TARGET)$(TARGET) : $(OBJS)$(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)
Linux驱动层的Makefile通用模板
ifeq ($(KERNELRELEASE),)KERNELDIR ?= /home/linux/linux-3.14/ //ARM编译使用
#KERNELDIR ?= /lib/modules/$(shell uname -r)/build //ubuntu编译使用
PWD := $(shell pwd)modules:$(MAKE) -C $(KERNELDIR) M=$(PWD) cp *.ko /source/rootfsmodules_install:$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_installclean:rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module* modules*.PHONY: modules modules_install cleanelseobj-m := fs4412_adc.o
endif
Makefile语法规则请参考:跟我一起写makefile完整版带书签pdf,对第二版进行了重新排版,添加新版的Makefile语法规则,并对代码进行详细注释,如下图示,下载地址:https://download.csdn.net/download/u010872301/10028318
makefile模板相关推荐
- 一个适用各类场合的Makefile模板
1.写在前面 对于Windows下开发,很多IDE都集成了编译器,如Visual Studio,提供了"一键编译",编码完成后只需一个操作即可完成编译.链接.生成目标文件.Linu ...
- 一个STM32编译Makefile模板
最近突然对STM32感兴趣,研究了一下.STM32的编译方式非常多,由于一直对gcc情有独钟,所以还是喜欢使用Makefile+gcc编译的方法.当时从51单片机转向AVR单片机开发时,也是通过这种方 ...
- Makefile模板的继续改进
layout: post title: category : linux系统 tags : [Makefile] 上一文章的Makefile,存在一个比较大的问题,那就是生成可执行的二进制文件时,会链 ...
- 一个使用多年的Makefile模板
layout: post title: category : linux系统 tags : [Makefile] 许久以前,一直使用自己总结的Makefile模板,这个模板也是基于现有资料整理而成的. ...
- 复杂多目录的Makefile模板及示例
大约一年多以前,还在移植u-boot,当时参考了u-boot的Makefile,做了一个多目录的Makefile模板.如今,一年过去了,本篇文章还是折腾Makefile模板,本人的水平由此可见一斑.当 ...
- 复杂多目录的Makefile模板及示例-转
大约一年多以前,还在移植u-boot,当时参考了u-boot的Makefile,做了一个多目录的Makefile模板.如今,一年过去了,本篇文章还是折腾Makefile模板,本人的水平由此可见一斑.当 ...
- 通用Makefile模板
#################################################################################################### ...
- GNU/Linux智能Makefile模板(多目录,多文件)
本文提供一个在GNU/Linux环境下通用的智能Makefile模板,用户可以将其引入到自己的工程当中.即使用户对此 Makefile的工作原理不甚了解,但是只需要修改少数几个关键变量,就可以满足不同 ...
- 万能 Makefile 模板
在 Linux 编程时,对于很多小工程来说,很多时候似乎没有必要用 autoconf 和 automake 工具来生成 Makefile,反而自己写一个 Makefile 更省事.这里给大家提供一个简 ...
- LINUX驱动Makefile模板
网上有好多关于驱动的Makefile怎么写,驱动程序怎么运行,为什么驱动会没有main等等问题的问题的问题.下面我也给出我的驱动Makefile模板,这些东东都是在书籍和人家的研究成果上改进而来的,至 ...
最新文章
- 设计模式之桥接模式(Bridge)摘录
- Appium_pytest fixture的使用
- 设计模式(2)--Singleton(单例模式)--创建型
- ReviewForJob——最小生成树(prim + kruskal)源码实现和分析
- python中int函数的用法浅析_Python中int()函数的用法浅析
- mysql加上判断_在mysql中where加if判断
- 应对亚洲劳动力成本不断上升的挑战
- 红茶一杯话Binder(初始篇)
- JQuery中ajax用法
- Java 编程题自动评分技术的研究与实现(一)
- 微擎支付返回商户单号_易宝支付哪个平台扣的,被易宝支付扣款怎么办
- 分布式常见面试题总结(2021)
- win11安装ie浏览器
- 高分三号卫星(GF-3)简介
- 证书无效打不开网站?如何修复Mac上的无效证书错误
- 大数据如何改变我们的国庆假期?
- pandas 插入空列_Pandas在DF创建期间添加额外的空列(Pandas add additional empty columns during DF creation)...
- 【实战技能】不做绑架公司的技术团队成员
- dataTable 固定列
- 详解【java实现】编写一个程序,从键盘读入一段英文(多行),找出其中所有的英文单词,统计每个单词出现的次数,并按照单词出现次数由大到小排序后输出。
热门文章
- [linux] redhat 7 ssh 安装配置免密登录
- mysql配置和管理(转载)
- ACdream 1148(莫比乌斯反演+分块)
- TypeScript -脚本编程语言
- 推理速度快千倍!谷歌开源语言模型Transformer-XL
- Window系统下 MongoDB 下载 和 安装
- 机器学习——支持向量机(SVM)
- inventor弧度怎么标注_家里房间太大,WiFi信号覆盖不了怎么办?网件新作:分身术...
- json与字面量定义对象的区别,请不要混淆,与字符串转换
- 初一计算机第6单元,青岛出版社初中信息技术 七年级下册第二单元 第6课 海报设计 教学设计...