目录
Linux下Makefile编写语法
07-29 阅读数 1384
目录
makefile建立
1.最简单的makefile
2.makefile进阶
3.makefile优化
(1)常用的变量名(约定俗成的):
(2)一些特殊字符
(3)特殊变量
(4)makefile内置函数
代码
makefile三要素:目标;依赖;命令
makefile执行原理:从上到下建立依赖关系;从下到上执行
通过实现一个加减乘除方法作为例子,文件结构如图所示
src中文件如图所示:
然后编写src中Makefile文件
app:add.c jian.c cheng.c chu.c main.c gcc add.c jian.c cheng.c chu.c main.c -I../include -o app
app:add.o jian.o cheng.o chu.o main.o gcc add.o jian.o cheng.o chu.o main.o -o app add.o:add.c gcc -c add.c -I../include jian.o:jian.c gcc -c jian.c -I../include cheng.o:cheng.c gcc -c cheng.c -I../include chu.o:chu.c gcc -c chu.c -I../include main.o:main.c gcc -c main.c -I../include
CC:表示c编译器版本
CFLAGS:表示编译时参数
CPPFLAGS:表示预处理参数
CXX:表示C++编译器版本
CXXFLAGS:表示c++编译时参数
LDFLAGS:表示库参数库选项
INCLUDE:表示头文件目录
TARGET:表示目标名
RM:删除选项
$(变量):对变量取值
@:只显示命令结果,忽略命令本身
-:如果当前命令出错,忽略错误,继续执行
%:通配符,通配符是以遍历的方式实现的
用于当前目标:
$@:代表目标
$<:代表依赖中的第一个
$^:代表所有依赖
wildcard:按照指定格式获取当前目录下的所有文件名
例:SOURCEFILE=$(wildcard *.c):获取.c后缀的所有文件并返回赋值给SOURCEFILE
patsubst:根据指定的格式进行替换(字符串替换)
例:DEFFILE=$(patsubst %.c,%.o,$(SOURCEFILE))
-
.PHONY:clean
#伪目标
-
CC=gcc
-
INCLUDE=-I../include
-
CFLAGS=-c -g -Wall $(INCLUDE)
#-g增加调试信息 -Wall严格编译
-
CPPFLAGS=-E -D
#-E头文件展开 -D编译时定义宏
-
CXX=g++
-
LDFLAGS=-L../lib -lpthread
#这只是个例子,并没用到该库。-l库名
-
TARGET=app
-
RM=rm -rf
-
-
SRCFILE=$(wildcard *.c)
-
DEFFILE=$(patsubst %.c,%.o,$(SRCFILE))
-
-
$(TARGET):$(DEFFILE)
-
$(CC) $^ -o $(TARGET)
-
%.o:%.c
-
$(CC) $(CFLAGS) $<
-
-
clean:
-
-$(RM) $(TARGET) $(DEFFILE)
-
install:
-
sudo cp $(TARGET) /usr/bin
-
uninstall:
-
sudo $(RM) /usr/bin/$(TARGET)
Makefile
10-19 阅读数 387
生成Makefile当你已经创建好你的项目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的项目文件那里然后输入:Makefile可以像这样由“.pro”文件生成: qmake-... 博文
makefile学习笔记-makefile介绍(另类风格的makefile)
04-18 阅读数 110
20180412makefile学习笔记-makefile介绍(另类风格的makefile)makefile可以自动推导命令,makefile也可以将重复的[.h]收拢起来,即新风格的makefile... 博文 来自: weixin_39089680的博客
makefile学习笔记-makefile总述(引用其他的Makefile)
05-02 阅读数 1101
20180412makefile学习笔记-makefile总述(引用其他的Makefile)在Makefile使用include关键字可以把别的Makefile包含进来,这很像C语言的#include... 博文 来自: weixin_39089680的博客
制作Makefile
09-03 阅读数 32
如何生成标准Makefile,生成标准Makefile需要哪些工具?生成的具体步骤是什么。一个简单的Makefile是怎么样的?... 博文 来自: wolfnx
makefile学习笔记-makefile介绍(Makefile文件名)
04-18 阅读数 248
20180412makefile学习笔记-makefile介绍(Makefile文件名)默认情况下,make命令会在当前目录下按照顺序找寻文件名为"GNUmakefile"、&qu... 博文 来自: weixin_39089680的博客
Makefile编写及一个简单的Makefile架构实现
06-29 阅读数 1359
本文通过总结makefile的相关使用,并将以前大型项目中用到的Makefile简单的记录下,以便以后快速应用:Makefile常用命令GCC/G++常用编译参数简单Makefile框架实现Makef... 博文 来自: ChrisMM
makefile文件格式
04-30 阅读数 1739
makefile文件写法 博文 来自: YellowMax
makefile学习笔记-makefile介绍(makefile是如何工作的)
04-18 阅读数 119
20180411makefile学习笔记-makefile介绍(makefile是如何工作的在默认的方式下,也就是我们只输入make命令那么:1、make会在当前目录下找名字为“Makefile”或“... 博文 来自: weixin_39089680的博客
Makefile - cuiyifang的专栏 - CSDN博客
10-2
Makefile - 小小小不的博客 - CSDN博客
9-30
这传奇你卸载算我输!爆率9.8,不花一分钱,一刀7777亿!
贪玩游戏 · 顶新
configure.in Makefile.am 生成Makefile
02-26 阅读数 190
在GitHub上下载一源码工程,没有Makefile,只有configure.in和Makefile.am生成configure文件生成aclocal.m4文件aclocal根据configure.i... 博文 来自: weixin_41666796的博客
Windows中的DLL - hhwhg123的博客 - CSDN博客
8-30
设计模式以及C++实现(一)创建型模式 - hhwhg123的博客 - CSDN博客
8-30
Makefile万能模板
12-18 阅读数 648
Makefile模板,RELEASE 博文 来自: V__KING__的专栏
Linux内核Makefile
06-05 阅读数 1119
顶层Makefile根据不同的平台,对各类target分类并调用相应的规则Makefile生成目标.config内核配置文件arch/$(ARCH)/Makefile具体平台相关的Makefilesc... 博文 来自: qlexcel的专栏
[003-Makefile-笔记] Makefile的规则
12-18 阅读数 276
Makefile的规则 博文 来自: p_fly的博客
makefile$@ $^ $? - IOT_SHUN的博客 - CSDN博客
10-10
Makefile是什么 - chenghuan3272 - CSDN博客
9-29
Makefile 语法入门
09-14 阅读数 4383
一、Makefile简介Makefile是一种常用于编译的脚本语言。它可以更好更方便的管理你的项目的代码编译,节约编译时间(没改动的文件不编译)。注意Makefile文件命令必须是Makefile或者... 博文 来自: 阿飞的博客
makefile写法
12-23 阅读数 113
背景在windows,linux,macOS三个平台上都写过代码,但是使用不同平台的不同IDE,当代码转移到另一个平台时,编译却很麻烦。例如我在macos上用xcode写的代码,在ubuntu上用qt... 博文 来自: yuanl15的博客
Makefile的编译方式
04-13 阅读数 81
Makefile使用GCC的命令进行程序编译时,当程序是单个文件时编译是比较方便的,但当工程中的文件数目增多,甚至非常庞大,并且目录结构关系复杂时,便需要通过makefile来进行程序的编译。示例:目... 博文 来自: jiaomubai的博客
GUN Makefile入门
03-31 阅读数 2601
本文只要针对GNUMakefile前8章及进行了学习和整理。目录1.Makefile入门什么是Makefile 为什么要使用Makefile2.Makefile初级语法1基本规则 宏定义(变量定义)2... 博文
程序员实用工具网站
09-04 阅读数 9万+
目录1、搜索引擎2、PPT3、图片操作4、文件共享5、应届生招聘6、程序员面试题库7、办公、开发软件8、高清图片、视频素材网站9、项目开源10、在线工具宝典大全程序员开发需要具备良好的信息检索能力,为... 博文 来自: 不脱发的程序猿
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
09-21 阅读数 4万+
起因又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而怨气满满!而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有... 博文 来自: bigsai
别再翻了,面试二叉树看这 11 个就够了~
09-13 阅读数 1万+
写在前边数据结构与算法:不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面... 博文 来自: 一个不甘平凡的码农
Java泛型 通配符详解
10-07 阅读数 1471
对于 博文 来自: anlian523的博客
代码整洁 vs 代码肮脏
09-16 阅读数 8万+
写出整洁的代码,是每个程序员的追求。《cleancode》指出,要想写出好的代码,首先得知道什么是肮脏代码、什么是整洁代码;然后通过大量的刻意练习,才能真正写出整洁的代码。WTF/min是衡量代码质量... 博文 来自: www.bysocket.com
让程序员崩溃的瞬间(非程序员勿入)
09-16 阅读数 9万+
今天给大家带来点快乐,程序员才能看懂。来源:https://zhuanlan.zhihu.com/p/470665211.公司实习生找Bug2.在调试时,将断点设置在错误的位置3.当我有一个很棒的调试... 博文 来自: strongerHuang
接私活必备的 10 个开源项目!
09-17 阅读数 2万+
点击蓝色“GitHubDaily”关注我加个“星标”,每天下午18:35,带你逛GitHub!作者|SevDot来源|http://1t.click/VE8W...... 博文 来自: GitHubDaily
阿里资深工程师教你如何优化 Java 代码!
09-17 阅读数 1万+
作者|王超责编|伍杏玲明代王阳明先生在《传习录》谈为学之道时说:私欲日生,如地上尘,一日不扫,便又有一层。着实用功,便见道无终穷,愈探愈深,必使精白无一毫不彻方可。代码中的"坏味道",如"私欲"如"灰... 博文 来自: CSDN资讯
周杰伦新歌《说好不哭》上线,程序员哭了......
09-19 阅读数 7万+
欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活... 博文 来自: 华为云官方博客
GitHub开源的10个超棒后台管理面板
09-21 阅读数 1万+
目录1、AdminLTE2、vue-Element-Admin3、tabler4、Gentelella5、ng2-admin6、ant-design-pro7、blur-admin8、iview-ad... 博文 来自: 不脱发的程序猿
Java中创建对象的5种方法
09-23 阅读数 4279
将会列举5种方法去创建Java对象,以及他们如何与构造函数交互,并且会有介绍如何去使用这些方法的示例。作为一个Java开发人员,我们每天都会创建大量的Java对象,但是我们通常会使用依赖管理系统去创建... 博文 来自: liululee的博客
100 个网络基础知识普及,看完成半个网络高手
09-23 阅读数 4万+
欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活... 博文 来自: 华为云官方博客
深入理解C语言指针
09-28 阅读数 0
博文
C语言实现推箱子游戏
09-29 阅读数 0
博文
面试官:兄弟,说说基本类型和包装类型的区别吧
09-29 阅读数 0
博文
8000字干货:那些很厉害的人是怎么构建知识体系的
09-29 阅读数 0
博文
Android完整知识体系路线(菜鸟-资深-大牛必进之路)
09-29 阅读数 0
博文
C语言这么厉害,它自身又是用什么语言写的?
09-27 阅读数 0
博文
Java版的7种单例模式
09-30 阅读数 0
博文
彻底搞懂JVM类加载器:基本概念
10-01 阅读数 0
博文
开源大阅兵:盘点那些走向世界的中国项目
10-02 阅读数 0
博文
计算机非科班工作后如何爬出技术的绝望之谷,走向开悟之路
10-03 阅读数 0
博文
Python使用tkinter模块实现推箱子游戏
10-06 阅读数 0
博文
认真推荐几个不错的技术公众号
10-03 阅读数 0
博文
NULL,0,`0`,`\0`,"0"你分得清吗?
10-04 阅读数 0
博文
Python 愤怒的小鸟代码实现(1):物理引擎pymunk使用
10-06 阅读数 0
博文
国产阿里OCEANBAS勇夺TPC-C冠军,200行代码解读它的速度源头
10-04 阅读数 0
博文
Java 初级面试题(持续更,近期更新时间:2019/10/11)
10-04 阅读数 0
博文
前端开发必备网站推荐
10-05 阅读数 0
博文
中国物联网激荡20年
10-05 阅读数 0
博文
写个最简单的植物大战僵尸修改器吧!c和python
10-05 阅读数 0
博文
【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!
10-06 阅读数 0
博文
Vue 3.0 源码开放,看看都有哪些新特性
10-06 阅读数 0
博文
用Matplotlib,妈妈再也不担心我没有表情包斗图了
10-06 阅读数 0
博文
十大优秀编程项目,让你的简历金光闪闪
10-06 阅读数 0
博文
第二弹!python爬虫批量下载高清大图
10-06 阅读数 0
博文
SpringBoot注解梳理
10-06 阅读数 0
博文
ReentrantLock 源码解读之lock和unlock过程
10-08 阅读数 0
博文
Spring Boot 无侵入式 实现API接口统一JSON格式返回
10-06 阅读数 0
博文
tensorflow安装(机器学习入门,小白包会)
10-07 阅读数 0
博文
结合OpenCV与TensorFlow进行人脸识别
10-07 阅读数 0
博文
算法小程序:倒水问题
10-07 阅读数 0
博文
Mybatis连接数据库常用语句整理汇总(1)
10-07 阅读数 0
博文
python入门教程
10-07 阅读数 0
博文
今年国庆的一些感受
10-07 阅读数 0
博文
数据库基础(常用SQL语句)
10-07 阅读数 0
博文
Java中几种排序算法
10-07 阅读数 0
博文
JS面试中常见的算法题
10-07 阅读数 0
博文
没有更多推荐了,返回首页
©️2019 CSDN
皮肤主题: 大白
设计师:
CSDN官方博客