linux/makefile
炸鸡叔
Done is better than perfect
展开
-
一个较为通用的linux工程目录架构和Makefile
1、前言 此工程目录虽然对于大型的工程来说还略显单薄,但是对于一些大项目前期的测试程序还是可以胜任的,故记录下来,以备以后查阅。2、目录结构图 用图片的形式来表示功能目录的架构,较为直观,不多废话直接上图:原创 2014-05-18 09:48:18 · 1993 阅读 · 0 评论 -
从头开始写项目Makefile(三):变量的使用
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】仔细研究我们的之前Makefile发现,我们还有改进的地方,就是此处:[plain] view plaincopytarget_bin : main.o debug.o ipc.o timer.o tool转载 2014-09-13 14:00:41 · 710 阅读 · 0 评论 -
从头开始写项目Makefile(九):目录搜索
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】 在一个较大的工程中,一般会将源代码和二进制文件(.o 文件和可执行文件)安排在不同的目录来进行区分管理。这种情况下,我们可以使用 make 提供的目录搜索依赖文件功能(在指定的若干个目录下自动搜索依赖文件)。在Makefile中,使用依赖转载 2014-09-13 16:08:56 · 652 阅读 · 0 评论 -
从头开始写项目Makefile(五):嵌套执行
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】在大一些的项目里面,所有源代码不会只放在同一个目录,一般各个功能模块的源代码都是分开的,各自放在各自目录下,并且头文件和.c源文件也会有各自的目录,这样便于项目代码的维护。这样我们可以在每个功能模块目录下都写一个Makefile,各自Makefile处理转载 2014-09-13 16:03:00 · 766 阅读 · 0 评论 -
从头开始写项目Makefile(一):基本规则
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】一般一个稍大的linux项目会有很多个源文件组成,最终的可执行程序也是由这许多个源文件编译链接而成的。编译是把一个.c或.cpp文件编译成中间代码.o文件,链接是就使用这些中间代码文件生成可执行文件。比如在当前项目目录下有如下源文件:转载 2014-09-13 14:00:24 · 798 阅读 · 1 评论 -
从头开始写项目Makefile(八):模式规则
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】 上一节讲到目录创建成功,目标文件没有生产到对应目录下,这里我们先给目标文件加上对应目录,这样的话产生对应的目标文件会直接生成到对应目录。我们先给库文件目标和可执行文件目标加上路径,如下:[html] view plaincopy转载 2014-09-13 16:06:01 · 702 阅读 · 0 评论 -
从头开始写项目Makefile(零):前言
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】 最近发现我们项目的Makefile不够好,于是着手改了一下,以前Makefile写好后就很少动它了,直接在项目之间拷来拷去直接拿来用,这次重新修改项目Makefile,发现自己又学到不少东西,于是乎决定总结一下记录下来与各位苦逼的程序猿一道分享一下转载 2014-09-13 13:59:01 · 588 阅读 · 0 评论 -
从头开始写项目Makefile(七):统一目标输出目录
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】 上一节我们把规则单独提取出来,方便了Makefile的维护,每个模块只需要给出关于自己的一些变量,然后再使用统一的规则Makefile。这一节我们继续改进我们的Makefile,到目前为止我们的Makefile编译链接输出的目标都在源文件同目录下或模块M转载 2014-09-13 16:06:57 · 721 阅读 · 0 评论 -
从头开始写项目Makefile(二):隐含规则自动推导
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】上一节的Makefile勉强可用,但还写的比较繁琐,不够简洁。对每一个.c源文件,都需要写一个生成其对应的.o目标文件的规则,如果有几百个或上千个源文件,都手动来写,还不是很麻烦,这也不够自动化啊。这样,我们把生成.o目标文件的规则全部删除掉,就是这转载 2014-09-13 13:59:41 · 750 阅读 · 0 评论 -
从头开始写项目Makefile(十):make内嵌函数及make命令显示
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】 这一节我们讲一下make的函数,在之前的章节已经讲到了几个函数:wildcard、patsubst、notdir、shell等。一般函数的调用格式如下:$(funcname arguments)或$(funcname arguments)转载 2014-09-13 16:07:40 · 638 阅读 · 0 评论 -
从头开始写项目Makefile(六):参数传递、条件判断、include
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】在多个Makefile嵌套调用时,有时我们需要传递一些参数给下一层Makefile。比如我们在顶层Makefile里面定义的打开调试信息变量DEBUG_SYMBOLS,我们希望在进入子目录执行子Makefile时该变量仍然有效,这是需要将该变量传递给子Makef转载 2014-09-13 16:05:50 · 843 阅读 · 0 评论 -
从头开始写项目Makefile(四):伪目标
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】一般情况下,Makefile都会有一个clean目标,用于清除编译过程中产生的二进制文件。我们在第一节的Makefile就用到了这个 clean目标,该目标没有任何依赖文件,并且该目标对应的命令执行后不会生产clean文件。像这种特点目标,它的规则所转载 2014-09-13 16:04:05 · 781 阅读 · 0 评论 -
一个通用的编译模块Makefile,编译结果xxxx.ko
# If KERNELRELEASE is defined, we've been invoked from the# kernel build system and can use its language.ifneq ($(KERNELRELEASE),) obj-m := edmaDrv.o edmaDrv-objs := edma3_drv.o# O原创 2014-05-18 14:46:45 · 2131 阅读 · 0 评论 -
Makefile中的死循环问题--学习李云《驾驭Makefile》中的疑惑解决
在学习李云《驾驭Makefile》出现了一点问题,本着刨根问底,遇到问题不忽略,要搞明白的精神,要把遇到的问题解决,然后总结分享。 在李云《驾驭Makefile》:http://yunli.blog.51cto.com/831344/195759(感谢李大牛的无私奉献精神)中模仿2.5节对Makefile后,进行编译,会不断的刷死循环,如图所示,怎么改都不对,不知为何。先把Makefile贴原创 2017-05-21 16:04:12 · 2856 阅读 · 3 评论