Makefile2
规范
- target可以是Object file, 可执行文件或者标签(标签一般没有依赖)
- 越靠近最终结果的target卸载越前面
- 定义target前, 定义CC, SRC, CFLAGS, OBJS, INCLUDES, RM, COPY等变量方便修改
- 在以前使用gcc编译时, 一般直接使用gcc编程链接成可执行文件, 但是在makefile中.o后缀的Object file非常重要, 需要生成OBJ = main.o test1.o test2.o
- 每一个makefile文件在最后应该定义一个clean标签, 用于清理编译生成的文件, 这是定义的变量就方便了许多, 在clean标签中使用-rm -rf $(OBJS), 其中rm之前的横线是说可能rm执行时会有错到那时不用理会
- makefile中可以自动推导出.c与.o的依赖关系, 如果target是.o文件, makefile最自动加上.c的依赖并执行一个从.c --> .o的命令
Makefile工作流程(Copy From Others)
- 读入所有的Makefile。
- 读入被include的其它Makefile。
- 初始化文件中的变量。
- 推导隐晦规则,并分析所有规则。
- 为所有的目标文件创建依赖关系链。
- 根据依赖关系,决定哪些目标要重新生成。
- 执行生成命令。
Makefile2的更多相关文章
- Makefile-2
一.命令行参数 -n/--just-print/--dry-run/--recon 只显示命令,但不会执行命令,用于调试 makefile. -s/--slient/--quiet 禁止命令的显示 ...
- bsp makefile2
1. grep "bsp_dir" -r ./ -s --exclude-dir "*.git" 用这个加快目录定位-- 2.编译所有子目录 for dir ...
- Linux下的几个好用的命令与参数
将所有文件的编码,转换为UTF-8 find . ! -type d -exec enca -L zh_CN -x UTF-8 {} \; 将指定目录下所有文件权限设定为644 find . ! -t ...
- codeblock 编译googletest
1.cmake安装 2.codeblock 16.01 3.Google Test 1.7.0 4.PATH路径添加(重启电脑,保证设置的PATH路径生效) 5.python安装 6.编译安装: ...
- make命令以及makefile
make命令以及makefile使用RCS与CVS进行源代码控制编写手册页使用patch与tar发布软件开发环境 多源代码的问题 当我们编写小程序时,许多人都是简单的在编辑后通过重新编译所有的文件重新 ...
- How to address this problem?
root# cmake .. No problem. root# make [ 63%] Linking CXX shared module collisionperceptor.so/usr/bin ...
- mxnet环境搭建随记
安装mxnet还是遇到不少麻烦事,现在简单记一下,挖个坑,后续详细补充,打算写一下我的mxnet探索之旅. 更新: 具体安装mxnet,cuda,opencv过程已经补坑——点击进入 不知道为什么,在 ...
- OpenCV Linux 安装 Make出错
执行完CMake之后再执行make时遇到以下错误 [ %] Generating precomp.hpp.gch/opencv_core_Release.gch In file included /b ...
- OpenCV开发环境配置-Windows/MinGW/Clion/CMake
临时更换成了TDM-GCC,和mingw类似,这里只是声明一下. 由于opencv下载下来的.exe安装包实际上是没有mingw(gcc)匹配的/动静态库,因此这些东西需要我们自己使用mingw编译. ...
随机推荐
- C#字符串拼接的三种方式
static void Main(string[] args) { string name = "asher"; //方法1 string str1 = "hello & ...
- ubuntu - mongoDB
安装 - 官网 命令行安装后使用1 服务端 mongod -version @ 查看mongoDB sudo service mongod start 启动mongo服务 sudo service m ...
- oracle sql 字段行转列
数据库中原先如图: 现在要吧WHMM行转列: conncect by用于确定列的个数
- ubuntu - 14.10,安装uget和aria2(下载工具)
Windows下的下载工具--迅雷,之所以下载速度快,乃是它能搜索资源.为己所用,而不是仅仅从原始地址这单一资源处下载. Ubuntu下也有类似的工具,那就是aira2. aira2是一个命令行下载工 ...
- Block 代码块
前言 iOS4.0开始,Block横空出世,自他出生开始,就深受Apple和开发者的喜爱.他其实就是c预言的补充,书面点说就是带有自动变量的匿名函数. 其实很多初级开发者也很喜欢使用Block,第一呢 ...
- AngularJS(三)——指令实战及自定义指令
前言 上篇介绍了一些指令的应用,本篇介绍一些常用的用法格式. 内容 指令实战 下面通过输入一个名字实现实时更新文本内容. 需要的指令有: ng-app.ng-model.ng-bind.n-init ...
- Jmeter-逻辑控制器之Foreach
ForEach 作用:用来遍历当前元素的所有可执行场景:在用户自定义变量中读取一系列相关的变量,该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值: 输入变量前缀:在其中输入需要遍历 ...
- Python发送邮件代码
Python发送带附件的邮件代码 #coding: utf-8 import smtplib import sys import datetime from email.mime.text impor ...
- P3978 [TJOI2015]概率论
\(\color{#0066ff}{ 题目描述 }\) 为了提高智商,ZJY开始学习概率论.有一天,她想到了这样一个问题:对于一棵随机生成的n个结点的有根二叉树(所有互相不同构的形态等概率出现),它的 ...
- luogu2155 [SDOI2008]沙拉公主的困惑
link 求出1到N的阶乘中与M的阶乘互质的数的个数,对R取模,多组询问,R<=10^9+10,T<=10000,1 < = N , M < = 10000000 1到\(M! ...