
makefile
文章平均质量分 70
grey_csdn
这个作者很懒,什么都没留下…
展开
-
1763_gcc编译c语言makefile自动生成工具的Perl实现_Linux
今天修改、测试的PC平台为树莓派3B,其实简单的学习、办公、小开发使用树莓派似乎也全都能够实现。我自己在使用的过程中还是觉得没有什么性能上的局限,当前我也没有什么太大的工作需要数据的大量吞吐。编译测试用的工程是我之前学习数据结构的时候写的双向链表模块,代码之前已经在Windows上测试过。看到命令窗的这个五颜六色的字体、用着各种熟悉的快捷键总觉得是一种享受。对我来说,树莓派最终肯定不会是我的生产力平台,或许会是我日后用于折腾控制器的一个总控中心。不过,我总觉得回归Linux会是我必然的归宿。原创 2023-07-07 22:47:34 · 524 阅读 · 0 评论 -
1762_gcc编译c语言makefile自动生成工具的Perl实现
不过,有时候文件多的时候确实也需要自己写个简单的makefile,一来二去,厌烦了重复劳作的我有了写个简单小工具的想法。本次实现的功能很不完整,实用功能是最主要的指标,其他的功能能省则省。make工具使用了gmake,从MATLAB的安装目录中找到的,gcc是安装草莓Perl时打包安装的。虽说这种makefile比较冗长难维护,但是其实我们的工具本来就是解决这样的问题的,只要编译能够顺利执行,我们并不需要特别在意makefile的具体内容。值得注意的是,中间固定死了主函数所在的文件名以及位置。原创 2023-07-06 20:18:17 · 667 阅读 · 0 评论 -
1734_makefile学习小结_4_隐性规则自动推导
通过以上例子可以看到,关于foo.o以及bar.o的生成规则makefile文件中并没有写明,但是通过make分析makefile进行编译的时候上述文件头得到了正常的编译。这边一隐性规则自动推导的一种表现。原创 2023-06-07 19:53:16 · 89 阅读 · 0 评论 -
1733_makefile编写小结3_静态目标
值得注意的一个经验型技巧:现在看了很多makefile的教程,里面的c编译器基本上都是cc。如果想使用gcc等编译器又想直接抄示范的makefile可以在makefile中定义CC的值为gcc等编译器,这样cc就可以直接引用gcc等其他的编译器。最近学习makefile的编写,接触到了一个静态目标的概念。最后运行报错,目前还没有通过学习到的知识解决这个问题。但是值得注意的是自动推到的过程以及推导后的编译过程已经看得出来。静态目标通过通配符自动推到目标文件与c文件的关系,推导结束后依次进行编译。原创 2023-06-06 07:32:58 · 104 阅读 · 0 评论 -
1732_makefile编写小结2_实现c文件依赖的自动推导
这部分的知识来自于GNU make的使用手册,make是可以自动推导出c文件的依赖关系的。不过,前提是你想让你的object文件跟你的c文件除了扩展名之外的文件名相同。在makefile中,这是默认的c编译器的名字。学习到目前的章节暂时还没有看到相关的描述,不过这个倒是自己根据经验尝试试出来了。如果对makefile进行更进一步的精简化、规整化,那么可以把重复出现的部分变量化。这在一定程度上跟我们学习到的任何编程语言都是想通的。原创 2023-06-05 19:55:20 · 114 阅读 · 0 评论 -
1731_makefile编写小结1_编译同目录下的文件
过去我曾经多次采用偷懒的方式,随便找个makefile大致找一下规律然后自己写个脚本把所需的新的makefile生成出来,我也曾经求助于cmake等自动生成工具。这曾经让我实现过很多简单的makefile,也让我把gcc能够简单测试起来,不过距离我能够游刃有余使用其他的编译器还有很长的路要走。至于CodeWarrior,我则是采用了模仿然后使用脚本修改的方式,倒也能够满足我的要求。我把自己的能力进阶分为几个小段,最终的目的当然是能够写出多层级、多目录的复杂makefile,而且使用非gcc的编译器。原创 2023-06-04 10:53:34 · 195 阅读 · 0 评论 -
1671_make隐式规则的链
全部学习汇总:之前花过一点时间看了一部分makefile的资料,但是基本上做到了大概能够看懂就止步了。因为现在构建工具有多了很多,掌握的难度要低不少。不够,makefile是去了解很多项目必然要面对的一个部分,因此基础的知识,尤其是可以以读懂为目的的一些基础知识还是需要补充一下。这一次,来通过简单的翻译整理理解一下隐式规则的链。原创 2023-04-07 21:52:53 · 550 阅读 · 0 评论 -
1152_Makefile学习_模式匹配规则
全部学习汇总:https://github.com/GreyZhang/g_makefile 前面看了一个静态模式匹配规则,这一次看一下模式匹配规则。 这里,从别人写的教程里面摘取一段。关于这两条规则的解读其实很简单,第一个是能够实现.o与.c之间依赖关系的自动推导,之后执行编译的命令。而编译的时候,用了两个内置的变量,$<用来指代依赖文件而$@用来指代目标文件。第二个在之前的例子中用到过,用来创建缺失的空文件。 接下来,看一部分文档的讲解。 ...原创 2022-02-15 23:59:49 · 943 阅读 · 0 评论 -
1151_Makefile学习_Makefile中的静态匹配模式规则
全部学习汇总:https://github.com/GreyZhang/g_makefile 关于这部分本来是想先看例子,查阅了部分资料之后觉得这部分的分析从文档本身开始比较合适一些。 首先看一下这一段文档,针对这段文档可以梳理出来几条比较有用的知识小结。1,首先注意一下这个用法的基本语法格式以及每一部分的具体功能,由此对这个表述形式的功能做出一个小结:每一个与目标模式相匹配的目标都会被提取出来名称中的一部分,这部分称为stem,将stem替换到每一个依赖匹配中用以推导出依...原创 2022-02-15 23:57:56 · 949 阅读 · 0 评论 -
1150_Makefile学习_Makefile中的重名target处理
全部学习汇总:GitHub - GreyZhang/g_makefile: Learn makefile from all kinds of tutorials on the web. Happy hacking and let's find an common way so we may don't need to touch makefile code any more! 这是我自己在学习过程中增加的一个小问题,研究的方式是直接写一下测试的Makefile用来测试。或许,相应的内容在...原创 2022-02-15 23:49:01 · 901 阅读 · 0 评论 -
1149_Makefile学习_Windows系统下Makefile gmake报process_begin: CreateProcess(NULL, ..., ...) failed.问题解决
全部学习汇总:https://github.com/GreyZhang/g_makefile 最近因为工作需求,得重新面对Makefile。我之前也通过各种脚本替代国Makefile的功能,比较傻瓜化但是其实对付一般的小工程还是可以的。那么为什么又回到了Makefile呢?因为我觉得或许这个也是一种方法论的体现,加上这也算是古老技术的传承,如果精通了处理问题或许会更加优雅。 我有过几次直接读make手册最终失败告终的经历,这一次我放弃了啃读枯燥的手册,把方式转到了跟随网络教程上...原创 2022-02-15 23:11:32 · 7742 阅读 · 1 评论 -
1148_Makefile学习_Makefile中的目标、变量以及通配符初步
全部学习汇总:https://github.com/GreyZhang/g_makefile 前面已经简单梳理了关于Makefile中目标的基础信息,接下来增补并且测试几个关于目标的小知识点。顺便,增加部分其他的基础信息。 如果目标文件有多个,可以设置一个all目标作为多个目标的目标。all: one two threeone: touch onetwo: touch twothree: touch threecle...原创 2022-02-15 22:49:40 · 691 阅读 · 0 评论 -
1147_Makefile学习_Makefile中的目标文件以及依赖文件
全部学习汇总:https://github.com/GreyZhang/g_makefile 先看一个简单的例子:hello: echo "hello world" 如果创建一个名称为Makefile的文件,输入上面的内容保存。之后,启动命令行切入到这个文件所在的目录输入make(或者gmake等)会出现如下效果: 能够看得出交互界面上打印出来了原来的命令语句,同时又打印了语句执行的结果。这个我多少倒是理解,应该前面可以加一个@符号来处理掉命令本身的...原创 2022-02-14 23:40:26 · 2560 阅读 · 0 评论