|
一个调试makefile文件的简便方法:那就是用make -p|tee make.out来输出make运行过程中产生的中间信息。 make -n 就可以输出调试 make 的运行 一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想 让make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make 命令的。 一、make的退出码 make命令执行后有三个退出码: 0 —— 表示成功执行。 Make的相关参数我们会在后续章节中讲述。
前面我们说过,GNU make找寻默认的Makefile的规则是在当前目录下依次找三个文件——“GNUmakefile”、“makefile”和“Makefile”。 其按顺序找这三个文件,一旦找到,就开始读取这个文件并执行。 当前,我们也可以给make命令指定一个特殊名字的Makefile。要达到这个功能,我们要使用make的“-f”或是“--file”参数 (“--makefile”参数也行)。例如,我们有个makefile的名字是“hchen.mk”,那么,我们可以这样来让make来执行这个文件: make –f hchen.mk 如果在make的命令行是,你不只一次地使用了“-f”参数,那么,所有指定的makefile将会被连在一起传递给make执行。
一般来说,make的最终目标是makefile中的第一个目标,而其它目标一般是由这个目标连带出来的。这是make的默认行为。当然,一般来 说,你的makefile中的第一个目标是由许多个目标组成,你可以指示make,让其完成你所指定的目标。要达到这一目的很简单,需在make命令后直 接跟目标的名字就可以完成(如前面提到的“make clean”形式) 任何在makefile中的目标都可以被指定成终极目标,但是除了以“-”打头,或是包含了“=”的目标,因为有这些字符的目标,会被解析成命令行 参数或是变量。甚至没有被我们明确写出来的目标也可以成为make的终极目标,也就是说,只要make可以找到其隐含规则推导规则,那么这个隐含目标同样 可以被指定成终极目标。 有一个make的环境变量叫“MAKECMDGOALS”,这个变量中会存放你所指定的终极目标的列表,如果在命令行上,你没有指定目标,那么,这 个变量是空值。这个变量可以让你使用在一些比较特殊的情形下。比如下面的例子: sources = foo.c bar.c 基于上面的这个例子,只要我们输入的命令不是“make clean”,那么makefile会自动包含“foo.d”和“bar.d”这两个makefile。 使用指定终极目标的方法可以很方便地让我们编译我们的程序,例如下面这个例子: .PHONY: all 从这个例子中,我们可以看到,这个makefile中有四个需要编译的程序——“prog1”, “prog2”, “prog3”和 “prog4”,我们可以使用“make all”命令来编译所有的目标(如果把all置成第一个目标,那么只需执行“make”),我们也可以使用“make prog2”来单独编译目标“prog2”。 即然make可以指定所有makefile中的目标,那么也包括“伪目标”,于是我们可以根据这种性质来让我们的makefile根据指定的不同的 目标来完成不同的事。在Unix世界中,软件发布时,特别是GNU这种开源软件的发布时,其makefile都包含了编译、安装、打包等功能。我们可以参 照这种规则来书写我们的makefile中的目标。 “all” 当然一个项目的makefile中也不一定要书写这样的目标,这些东西都是GNU的东西,但是我想,GNU搞出这些东西一定有其可取之处(等你的 UNIX下的程序文件一多时你就会发现这些功能很有用了),这里只不过是说明了,如果你要书写这种功能,最好使用这种名字命名你的目标,这样规范一些,规 范的好处就是——不用解释,大家都明白。而且如果你的makefile中有这些功能,一是很实用,二是可以显得你的makefile很专业(不是那种初学 者的作品)。 四、检查规则 有时候,我们不想让我们的makefile中的规则执行起来,我们只想检查一下我们的命令,或是执行的序列。于是我们可以使用make命令的下述参 数: “-n” “-t” “-q” “-W <file>” 另外一个很有意思的用法是结合“-p”和“-v”来输出makefile被执行时的信息(这个将在后面讲述)。
下面列举了所有GNU make 3.80版的参数定义。其它版本和产商的make大同小异,不过其它产商的make的具体参数还是请参考各自的产品文档。 “-b” “-B” “-C <dir>” “—debug[=<options>]” “-d” “-e” “-f=<file>” “-h” “-i” “-I <dir>” “-j [<jobsnum>]” “-k” “-l <load>” “-n” “-o <file>” “-p” “-q” “-r” “-R” “-s” “-S” “-t” “-v” “-w” “--no-print-directory” “-W <file>” “--warn-undefined-variables”
http://hi.baidu.com/chenjun_dzlt/blog/item/f253821e2e7f4fc4a7866985.html |
相关推荐
【makefile系列】调试makefile
$(error $(LINK)) //打印变量LINK的值,并且编译报error $(warning $(LINK)) //打印变量LINK的值,并且编译报warning $(info string) //显示字符串string的值
makefile 调试
makefile 调试
硬件开发流程
研发流程在一个有一定规模的企业中起到了非常重要的作用,也是一个产品或者项目成功量产出货依赖的平台体系,作为工程师如果想要走的更远,就必须了解流程体系,了解如何对产品的开发质量进行更好的管控。...
【Makefile文件的测试和调试】
本文是对网上的makefile相关文件进行的测试和汇总。
水电站数字孪生:水力发电在可视化领域的应用
为智慧水坝领域提供了 B/S 架构的基于 WebGL 的图形引擎,与 GIS、粒子仿真、虚拟现实、边缘计算等技术相结合,融合多元业务系统数据,形成数字孪生界面,助力水利水电工程进一步提升数字化水平,乃至为整个工业领域添砖加瓦。
layui 监听单元格点击事件,获取当前点击单元格的内容以及 所在的表头内容
特别是后台的一些管理系统中 业务中还是会碰见这样的需求呢 如果你的后台使用layui写的话 在表格中 layui 也给我们提供了监听单元格的事件 但是好像不能直接获取到单元格内容个 和 对应的表头 其实 还是可以解决 换个角度使劲就会发现新的世界 不是吗 event: 'username' 在每个表头中加一个 event 属性 这样就可以监听表头事件 记住个 event 和 当前列的字段最好保持一样 table.render({ e...
makefile 的调试. remake
remake --tasks //列出Makefile 的目标,该目录会有命令执行来生成. --targets 是更详细的目标 remake --trace //跟踪维护的目标, 每一个运行的命令将会显示 remake --profile //列出构建过程中各部分消耗的时间 remake --debugger 进入debugger 调试状态 可以单步,断点,检查变量,调用堆栈,查看目标等.
特征模理论指导滤波天线设计的优势和方法
本文探讨了特征模理论在滤波天线设计中的应用优势和方法。特征模理论通过分析天线结构的本征模特性,突破了传统经验设计的局限,实现了辐射与滤波功能的一体化设计。文章重点阐述了如何利用模式显著性(MS)和模式加权系数(MWC)来指导辐射零点的产生,揭示了辐射零点形成的物理机制。通过特征模分析,设计师可以明确调控天线结构和馈电系统,优化滤波性能。这种方法为现代多频/宽带滤波天线设计提供了理论依据和实用工具,显著提升了设计效率和性能指标。
makefile调试工具,makefile调试,makefile
调试makefile如果有一个像gdb一样的调试器,工作起来肯定事半功倍,学习mekefile中文手册,看的是云里雾里,再去看u-boot的makefile更是看天书一样.在网上找了很久找到一个remake工具单步调试gdb神器,remake工具http://bashdb.sourceforge.net/remake/ 但是网上关于此工具的中文网页少的可怜,但是英文的就稍微多一点了,不过我英文虽然
Abaqus梁模型仿真中的常见陷阱与优化策略
本文深入探讨了Abaqus梁模型仿真中的常见陷阱与优化策略,涵盖几何建模、材料属性设置、边界条件处理等关键环节。针对梁截面方向定义、网格划分、复合截面建模等典型问题,提供了实用的Python脚本示例和优化方案,帮助工程师避免计算错误并提升仿真精度。文章特别强调了动力分析中的网格密度要求和材料非线性考虑,为复杂工程应用提供专业指导。
Python 爬虫实战:付费 IP 代理使用技巧与爬虫稳定性优化
付费IP代理实战指南:突破反爬与优化稳定性 本文系统讲解付费IP代理在爬虫项目中的高效应用方法。首先对比分析静态代理、动态代理和隧道代理的优缺点及适用场景,推荐高并发项目优先选择隧道代理。然后详细演示了主流代理服务商的集成方法,包括代理池的自动更新和健康检测机制。核心部分重点介绍了爬虫稳定性优化策略,如智能重试、频率控制和请求间隔优化等关键技术。最后通过压力测试验证优化效果,并提供成本控制方案,包括代理复用、错峰爬取等实用技巧。通过本教程,开发者可有效解决高并发爬虫中的IP封禁问题,显著提升系统稳定性和抗风
Makefile中的调试打印方法
使用info/warning/error增加调试信息 info $(info "here add the debug info") 注,info信息,不打印信息所在行号 warning $(warning "here add the debug info") error $(error "error: this will stop the compile") 这个可以停止当前makefil...
Python调用CANoe(2)(测试模块配置)
本节内容在Python和CANoe的数据交互(1)的基础认知上,继续探索Python如何加载TestSetup,以及运行tse测试文件
调试makefile 工程
一个调试makefile文件的简便方法:那就是用make -p|tee make.out来输出make运行过程中产生的中间信息。make -n 就可以输出调试make 的运行——————一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让make重编译某些文件,而不是整个工程,而又有的时候你有几套编
【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入注意力机制ChannelAttention
本文介绍了在nnunet中加入ChannelAttention的方法,按照本文教的教程,可以快速完成ChannelAttention的加入和自定义模型的跑通。
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
如何调试makefile
makefile 的调试有点像魔法。可惜,并不存在makefile 调试器之类的东西可用来查看特定规则是如何被求值的,或某个变量是如何被扩展的。相反,大部分的调试过程只是在执 行输出的动作以及查看makefile。事实上,GNU make 提供了若干可以协助调试的内置函数以及命令行选项。 用来调试makefile 的一个最好方法就是加入调试挂钩以及使用具保护的编程技术,让你能够在事情出
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
makefile 的调试
makefile 的调试 -d 打印出依赖 -n 打印出执行的命令, 但是尽可能不执行。本质上是打印第二阶段的执行命令。 -p 执行的过程中,同时打印出数据库。打印第二阶段的命令的执行效果,和第一阶段的数据库。 normal command execution occurs here # Make data base, printed on
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
gdb调试和makefile管理
gbd调试的一些相关命令以及makefile项目管理的规则介绍
如何调试MAKEFILE
makefile 的调试有点像魔法。可惜,并不存在makefile 调试器之类的东西可用来查看特定规则是如何被求值的,或某个变量是如何被扩展的。相反,大部分的调试过程只是在执 行输出的动作以及查看makefile。事实上,GNU make 提供了若干可以协助调试的内置函数以及命令行选项。 用来调试makefile 的一个最好方法就是加入调试挂钩以及使用具保护的编程技术,让你能够在事情出
如何调试makefile变量
<br />对于Makefile中的各种变量,可能是我们比较头痛的事了。我们要查看他们并不是很方便,需要修改makefile加入echo命令。这有时候很不方便。其实我们可以制作下面一个专门用来输出变量的makefile(假设名字叫:vars.mk)<br />vars.mk<br />@echo '$*=$($*)'<br /><br />d-%:<br /> @echo '$*=$($*)'<br /> @echo ' origin = $(origin $*)'<br />
陈皓的,makefile的调试问题
六、七年前写过一篇《跟我一起写Makefile》,直到今天,还有一些朋友问我一些Makefile的问题,老实说,我有一段时间没有用Makefile了,生疏了。回顾,这几年来大家问题我的问题,其实很多时候是makefile的调试问题。所以,就像我在之前的那篇关于GDB的技巧的文章中做的一样,在这里向大家介绍一个小小的调试变量的技巧。相信一定对你有用。 对于Makefile中的各种变量,可能是我们比
调试makefile_调试make
大多数UNIX®和Linux®程序都是通过运行make构建的。 make实用程序读取包含指令并执行各种操作以构建程序的文件(通常称为“ makefile”或“ Makefile”,但以下仅称为“ makefile”)。 在许多构建过程中,makefile本身完全由其他软件生成。 例如, autoconf/automake程序用于开发构建例程。 其他程序可能会要求您直接编辑一个makefile,...
Makefile常用调试方法。
Makefile常用调试方法 https://blog.youkuaiyun.com/piaopiaopiaopiaopiao/article/details/84307502 Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明 https://blog.youkuaiyun.com/qq1452008/article/details/50855810 ...
279



被折叠的 条评论
为什么被折叠?



