how to write a makefile

How to write the better Makefile for cpputest 最近给其他几个团队培训UT工具cpputest。自己没有写PPT,而是从网上找了一份比较不错的CppUTest课件,这份课件来自于一家叫Odd-e的敏捷咨询公司。 里面的内容比较基础,也很清晰,非常适合帮助初学者较快的入门。 由于我之前一直是在Windows下用VS使用这款UT工具,Linux下的实践仅仅限于在学习cpputest源码中的过程中,利用工具附带的example工程 阅读详情

 

makefile中的注释是以#号开头一直到行尾的字符,当nmake工具处理到这些字符的时候,它会完全忽略#号及全部注释字符。

 

在引用宏时只需在变量前加$符号,但是要注意的是,如果变量名的长度超过一个字符,在引用时就必须加圆括号()

 

configure是一个可移植的shell脚本,它检查编译环境以决定哪些库可用,所用平台有什么特征,哪些库和头文件已经找到等等。基于这些信息,它修改编译标记,生成Makefile文件,并/或输出一个包含已定义的预处理符号的config.h文件

 

./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,

并不是需要CC或GCC,它是个shell脚本。

make
是用来编译的,它从Makefile中读取指令,然后编译。

make install
是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

 

1、configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如

代码:

./configure--prefix=/usr
上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),

资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。

同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。

有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,

你可以通过允许 ./configure --help 察看详细的说明帮助。

 

2、make,这一步就是编译,大多数的源代码包都经过这一步进行编译

(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),

然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),

或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

make 的作用是开始进行源代码编译,以及一些功能的提供,

这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,

make uninstal 是卸载,不加参数就是默认的进行源代码编译。

make
是 Linux 开发套件里面自动化编译的一个控制程序,

他通过借助 Makefile 里面编写的编译规范(语法很多,类似一个可以运行的脚本程序。

反正我是看不懂,所以你也别问我怎么编写)。进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。


一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。


3、make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test

来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)

 

 

 

 

 

 --cross-prefix=PREFIX    为编译工具指定路径 | usePREFIX for compilation tools []

 --cross-compile          假定使用了交叉编译 |assume a cross-compiler is used
 --cc=CC                  
指定使用何种C编译器(默认gcc)use C compiler CC [gcc]

 

--build=BUILD
  指定软件包安装的系统平台.如果没有指定,默认值将是'--host'选项的值.

 

--host=HOST
  指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.

 

--target=GARGET
  指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值.

How to Write makefile pdf下载 立即下载

相关推荐

how to make makefile.pdf

how to make makefile

How to write a simple shell program

Today I want to talk about how to write a simple shell program.First of all you should know that the shell program is an interact program in most mainstream Linux/Unix system. It performs a sequence of

lianayizu的专栏 454

双斜率积分ADC:高精度测量中的经典选择与TC530/TC534实战指南

模数转换器(ADC)是连接模拟世界与数字系统的关键桥梁,其核心任务是将连续的模拟信号转换为离散的数字量。在众多ADC类型中,双斜率积分ADC以其独特的原理脱颖而出,它通过积分与反积分的线性过程,用时间换取精度,实现了对噪声的卓越抑制和极高的线性度。这种技术价值使其在对抗工频干扰、追求长期稳定性的场景中无可替代,尤其适用于精密测量仪表和工业传感器信号采集。本文聚焦于双斜率积分ADC的经典代表TC530与TC534,深入剖析其工作原理、关键参数如积分电阻、积分电容的选择,并提供从硬件电路设计到软件驱动的完整实战

weixin_30847063的博客 359

如何写shell脚本

shell pipeline To successfully write a shell script, we have to do three things: Write a script Give the shell permission to execute it Put it somewhere the shell can find it Write a script A shell script is a file that contains ASCII text. vim..

漫步量化 312

Huber损失函数中的阈值δ是如何确定的?

Huber损失函数通过阈值δ将误差划分为两部分:当误差小于等于δ时,采用平方损失(MSE),以保持对小误差的敏感性;当误差大于δ时,采用线性损失(MAE),以降低异常值对模型的影响。

百态·数智思维 | 聚焦大数据、量化与未来AI 1930

忘记安卓锁屏密码怎么办?3种方法教你用ADB恢复访问(含gesture.key解密)

本文详细解析了安卓设备锁屏密码的存储与加密机制,特别是gesture.key文件的解密原理。针对遗忘密码的常见问题,提供了三种核心恢复方法:利用ADB调试接口删除密码文件、对gesture.key进行离线分析与解密,以及应对高版本系统的替代方案。重点介绍了通过ADB工具在Recovery模式下操作的具体步骤,帮助用户在合法合规前提下恢复设备访问权限。

php55的博客 959

How to write a Makefile

How to write a Makefile17:32:18IntroductionMake is one of the original Unix tools for Software Engineering. By S.I. Feldman of AT&T Bell Labs circa 1975. But there are public domain ve

green2的专栏 986

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2593

How to write a Shell CLI?

package client import ( "bufio" "fmt" "os" ) type Shell interface { Run() } type shell struct { client Client } func NewShell(client Client) *shell { return &shell{ client: client, } } func (s *shell) Run() { defer s.client.Close() te.

修也 376

llama2-7b下载并转llama-2-7b-hf

④输入https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py会下载 convert_llama_weights_to_hf.py 文件,我们需要用到这个文件将llama2-7b转成llama-2-7b-hf。③下载完之后是这四个文件,这里我是在windows操作系统中安装的WSL,没有linux操作系统,没办法。

wenling54321的博客 1031

RK3588 部署 YOLO26 目标检测:从环境搭建到 NPU 推理

采集图像(500+ 张,覆盖不同光照和角度)→ 筛选(删除模糊、无目标的图像)→ LabelImg 标注(选择 YOLO 格式)→ 划分 train:val:test = 7:2:1labelImg├── train/├── val/nc: 3类别顺序必须与 LabelImg 标注时一致。YOLO26 在 RK3588 上的部署流程是 PC 端训练 → ONNX 导出(opset=11)→ RKNN 转换(INT8 量化)→ 板端推理。

LXY_LOVE36的博客 418

How to write a simple Makefile

ENVDIR = (SOME PLACE)/ws     # the project environmentinclude    $(ENVDIR)/tpmakeenv   # predefinition by the environment# directory for output filesOS_OBJDIR = (SOME PLACE)/lib# directory for source

quanben 715

数字图像处理 基于matlab、opencv计算图像的梯度方向和梯度幅值

图像可以被视为标量场(即二维函数)。通过微分将标量场转换为矢量场。梯度是一个向量,描述了在x或y方向上移动时,图像变化的速度。我们使用导数来回答这样的问题,图像梯度的大小告诉图像变化的速度,而梯度的方向告诉图像变化最快的方向。因为梯度有方向和大小,所以将这些信息编码为向量是很自然的。该向量的长度提供了梯度的大小,而其方向提供了梯度方向。因为梯度在每个位置可能不同,所以我们在每个图像位置用不同的向量来表示它。

学以致用 知行合一 3203

7、初级视觉皮层(V1)的研究综述

本文综述了初级视觉皮层(V1)的基本功能特性、计算理解、细胞相互作用及理论模型。V1不仅执行方向和空间频率的选择性滤波,还通过相位选择性和上下文调制参与高级视觉处理。研究从信息编码角度解释了V1感受野的形成,并介绍了基于自然图像统计的建模方法。横向与反馈连接揭示了V1在全局视觉整合中的作用,尤其是上下文对细胞响应的快速调节。李的动态模型提出V1可生成视觉显著性图,支持前注意分割和注意力引导。未来研究聚焦于V1在注意力、意识和硬件实现中的潜在应用,推动视觉神经科学与人工智能的交叉发展。

7z8x2c4v6b9的博客 146

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

How to write a Makefile for ARM board

<br />First Edition<br /> <br />#<br /> # Description:<br /> # Makefile for 2.6 device drivers<br /> #<br /><br /> # Comment/uncomment the following line to disable/enable debugging<br /> #DEBUG = y<br /><br /> # Add your debugging flag (or not) to C

脚印 705

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

如何写makefile

How to write a MakefileIntroductionMake is one of the original Unix tools for Software Engineering. By S.I. Feldman of AT&T Bell Labs circa 1975. But there are public domain versions (eg. GNU) a

hotsolaris的专栏 1027

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

How to write makefile

http://wiki.ubuntu.org.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile:%E4%B9%A6%E5%86%99%E8%A7%84%E5%88%99#.E8.87.AA.E5.8A.A8.E7.94.9F.E6.88.90.E4.BE.9D.E8.B5.96.E6.80.A7

ziliangxiao的专栏 1041

how to write makefile

出处:http://www.chinaunix.net/jh/23/408225.html关于程序的编译和链接首先要把源文件编译成中间代码文件,在windows下也就是.obj文件,UNIX下是.o文件,即Object File,这个动作叫做编译,然后再把大量的Object File合成执行文件,这个动作叫作链接。链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在

永恒之爱的专栏 842

how to write Makefile

Search this site   Software Engineering‎ > ‎ Make Tutorial: How-To Write A Makefile Many C and C++ projects rely on makefiles for thei

nilbooy的博客 1198
上一篇: byte order
下一篇: arm 寄存器
TestFamily
博客等级 码龄16年 14粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值