如何用makefile编译多个目录之间的.h .c文件呢 [问题点数:100分]

Bbs1
本版专家分:0
结帖率 96.67%
Bbs2
本版专家分:412
Bbs1
本版专家分:0
Bbs2
本版专家分:412
Bbs3
本版专家分:712
Bbs2
本版专家分:460
Bbs5
本版专家分:3213
Bbs1
本版专家分:0
Bbs8
本版专家分:35815
版主
Blank
红花 2013年8月 Linux/Unix社区大版内专家分月排行榜第一
2012年11月 Linux/Unix社区大版内专家分月排行榜第一
2012年10月 Linux/Unix社区大版内专家分月排行榜第一
2012年9月 Linux/Unix社区大版内专家分月排行榜第一
2012年7月 Linux/Unix社区大版内专家分月排行榜第一
2012年6月 Linux/Unix社区大版内专家分月排行榜第一
2012年5月 Linux/Unix社区大版内专家分月排行榜第一
2011年11月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年6月 Linux/Unix社区大版内专家分月排行榜第二
2013年5月 Linux/Unix社区大版内专家分月排行榜第二
2013年3月 Linux/Unix社区大版内专家分月排行榜第二
2013年1月 Linux/Unix社区大版内专家分月排行榜第二
2012年12月 Linux/Unix社区大版内专家分月排行榜第二
2012年8月 Linux/Unix社区大版内专家分月排行榜第二
2011年12月 Linux/Unix社区大版内专家分月排行榜第二
2011年10月 C/C++大版内专家分月排行榜第二
2011年10月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年6月 C/C++大版内专家分月排行榜第三
2012年6月 PHP大版内专家分月排行榜第三
2012年5月 C/C++大版内专家分月排行榜第三
2012年3月 Linux/Unix社区大版内专家分月排行榜第三
2012年2月 Linux/Unix社区大版内专家分月排行榜第三
2011年11月 C/C++大版内专家分月排行榜第三
Bbs5
本版专家分:4051
Blank
蓝花 2014年1月 Linux/Unix社区大版内专家分月排行榜第三
Bbs4
本版专家分:1831
版主
Blank
黄花 2011年3月 C/C++大版内专家分月排行榜第二
C语言makefile文件
在软件的工程中的源<em>文件</em>是很多的,其按照类型、功能、模块分别放在若干个<em>目录</em>和<em>文件</em>中,哪些<em>文件</em>需要<em>编译</em>,那些<em>文件</em>需要后<em>编译</em>,那些<em>文件</em>需要重新<em>编译</em>,甚至进行更复杂的功能操作,这就有了我们的系统<em>编译</em>的工具。 在linux和unix中,有一个强大的实用程序,叫make,可以用它来管理多模块程序的<em>编译</em>和链接,直至生成可执行<em>文件</em>。 make程序需要一个<em>编译</em>规则...
编译所有当前目录下.c文件的通用makefile
这个<em>makefile</em>,在linux环境下可以<em>编译</em>当前<em>目录</em>下所有.<em>c</em><em>文件</em>,可以把它们<em>编译</em>为可执行<em>文件</em>,或库<em>文件</em>。又通用,又简单.
Linux -- Makefile的学习笔记以及多级目录下Makefile的编写
一、Make简介: 工程管理器,顾名思义,是指管理较多的<em>文件</em>,Make工程管理器也就是个“自动<em>编译</em>管理器”,这里的“自动”是指它能够根据<em>文件</em>时间戳自动发现更新过的<em>文件</em>而减少<em>编译</em>的工作量,同时,它通过读入Makefile<em>文件</em><em>文件</em>的内容来执行大量的<em>编译</em>工作,Make将只<em>编译</em>改动的代码<em>文件</em>,而不用完全<em>编译</em>。 Makefile<em>文件</em>一般和项目的其他源<em>文件</em>放在同一个<em>目录</em>下。在机器上可以同时存在许多不同的m...
makefile文件编写
简介 或许很多Winodws的程序员都不知道这个东西,是因为那些Windows的IDE都为你做了这个工作,但是要成为一个好的或者professional的程序员,掌握和了解<em>makefile</em>还很有必要的。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别是在Unix下的软件<em>编译</em>,你就不得不自己写<em>makefile</em>了,会不会写<em>makefile</em>,从...
Makefile自动编译目录下的所有.C文件
自动<em>编译</em><em>目录</em>下的所有.C<em>文件</em>的Makefile脚本CC=g<em>c</em><em>c</em> CFLAGS_WARN = -Wall DEFINE = INCLUDE = -I. SOURCES = $(wild<em>c</em>ard *.<em>c</em>) OBJS = $(patsubst %.<em>c</em>,%.o,$(SOURCES)) TARGET = XXXX All:$(OBJS) $(CC) -o $(TARGET) $(OBJS)
文件目录下的makefile的编写(从简单到复杂)
再看这篇文章之前可以先看下这篇文章:   Makefile<em>文件</em>的简单编写    为了方便管理程序<em>文件</em>,我们一般会添加<em>文件</em>夹来进行分类管理,这时候为了方便我们<em>编译</em>,就需要在各个<em>文件</em>夹里面添加一个<em>makefile</em><em>文件</em>,make后就会自动的帮我们<em>编译</em>生成可执行<em>文件</em>。 一.简单篇 1. 先给出<em>目录</em>结构   这里 [外链图片转存中…(img-PRxa3g7n-1564282089938)]<em>h</em>ttp:/...
文件夹下的Makefile自动编译
很多时候我们可能会遇到这样的情况:要<em>编译</em>多个<em>目录</em>下的代码,然后要将中间<em>文件</em>和执行<em>文件</em>分别放到不同的<em>文件</em>夹下面。好吧,贴图的排版第一次用,将就看一下。下面的图是我练习用的一个项目<em>文件</em>结构图。其中bin用来存放最后生成的可执行<em>文件</em>,f1,f2分别是用到的两个模块(函数),而且两个<em>文件</em>夹下分别对应自己的Makefile<em>编译</em><em>文件</em>,in<em>c</em>lude包含的是头<em>文件</em>,main.<em>c</em>包含的是主函数,其对应<em>文件</em>夹下也有
linux下编译工程(使用命令行、Makefile、cmake编译helloworld)
linux环境下<em>编译</em>工程是开发的基础。使用<em>h</em>elloworld总结一下基础的<em>编译</em>方法。1.命令行法(在控制台中指定<em>编译</em>器直接<em>编译</em>)步骤如下: (1)新建<em>h</em>ello.<em>c</em>并添加内容 (2)选择<em>编译</em>器g<em>c</em><em>c</em>使用命令g<em>c</em><em>c</em> <em>h</em>ello.<em>c</em> -o <em>h</em>elloworld生成可执行<em>文件</em><em>h</em>elloworld 命令行主要是指定<em>编译</em>器g<em>c</em><em>c</em>,源<em>文件</em>名<em>h</em>ello.<em>c</em>,生成的可执行<em>文件</em>名<em>h</em>elloworld2.使用m
Makefile文件编写及make命令使用简介
概述在Linux(unix)环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的<em>编译</em>只需要一个命令就可以完成<em>编译</em>和连接。make是一个命令工具,它解释Makefile中的指令(应该说是规则)。在Makefile<em>文件</em>中描述了整个工程所有<em>文件</em>的<em>编译</em>顺序、<em>编译</em>规则。make执行时,根据Makefile的规则检查<em>文件</em>的修改情况,决定是否执行定义的动作(那些修改过的<em>文件</em>将会被重新
Makefile编译多个cpp文件
Makefile<em>编译</em>多个<em>c</em>pp<em>文件</em> 1:首先:用g++<em>编译</em>.<em>c</em>pp<em>文件</em>的方法: 可以直接用: g++ <em>文件</em>名.<em>c</em>pp 生成一个名为 “<em>文件</em>名.out” 的可执行<em>文件</em> 其原理为: 先由: g++ -<em>c</em> <em>文件</em>名.<em>c</em>pp:生成一个名为 “<em>文件</em>名.o” 的<em>文件</em> 再由: g++ <em>文件</em>名.o:生成一个名为 “<em>文件</em>名.out” 的可执行<em>文件</em> 另外,可以用: g++ -<em>c</em> <em>文件</em>名.<em>c</em>pp -...
请教一下makefile依赖关系中的.h文件
(1)在<em>makefile</em>的依赖关系中用不用体现.<em>h</em>头<em>文件</em>? (2)如果在依赖关系中要体现.<em>h</em>头<em>文件</em>,应该体现到什么层次? ============================== (1)在make
使用makefile编译多个.c文件例子
包含main.<em>c</em>、a.<em>c</em>、b.<em>c</em>、<em>makefile</em>。 其中,在main.<em>c</em>中使用a.<em>c</em>和b.<em>c</em>中的函数。 <em>makefile</em><em>文件</em>使用了变量和模式规则,是一份兼容性很强的代码指令,若要<em>编译</em>其它源<em>文件</em>,只需
Makefile教程(绝对经典,所有问题看这一篇足够了)
该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:<em>h</em>ttp://blog.<em>c</em>sdn.net/<em>h</em>aoel/arti<em>c</em>le/details/2886<em>makefile</em>很重要      什么是<em>makefile</em>?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefil...
linux Makefile 多个*.h、*.c 编译.ko文件参考
mtk_<em>h</em>if_sdio-objs := linux/<em>h</em>if_sdio.o  mtk_<em>h</em>if_sdio-objs += linux/<em>h</em>if_sdio_<em>c</em><em>h</em>rdev.o  mtk_<em>h</em>if_sdio-ob
求教 :多级目录的linux makefile要怎么写?c语言的
例如:建立一个<em>文件</em>夹 :m m中包含:main.<em>c</em> <em>文件</em>夹 a <em>文件</em>夹 b //main.<em>c</em> //a.<em>h</em> //a.<em>h</em> #in<em>c</em>lude #ifndef _A_H_ #ifndef
【Linux】多文件标准工程目录的Makefile编写及通用模板
在这里我们介绍多<em>文件</em>Makefile的编写,多<em>文件</em>标准工程<em>目录</em>的Makefile的编写及通用模板。
linux中C的Makefile多个文件目录,以及VPATH的简单示例
关于<em>makefile</em>多个<em>文件</em>夹的简单应用
linux--多目录下的MakeFile文件(嵌套Makefile)编写
linux--多<em>目录</em>下的<em>makefile</em><em>文件</em>编写1 简介2 步骤3 示例3.1 <em>文件</em>根<em>目录</em>下的<em>文件</em>3.2 这个是工程中除了in<em>c</em>lude,lib外的<em>目录</em>结构3.3 根<em>目录</em>下的<em>makefile</em><em>文件</em>3.4 OBJ<em>文件</em>中的<em>makefile</em>3.5 CPE_54_08<em>文件</em><em>目录</em>下的<em>makefile</em>3.6 Business<em>文件</em>下的<em>makefile</em>3.7 MXDatabase<em>文件</em>下的<em>makefile</em>3.8 So<em>c</em>...
关于函数在.c文件定义在.h文件声明与makefile
正确写法: aaa.<em>h</em>: #ifndef AAA_H #define AAA_H void pri(); #endif aaa.<em>c</em>: #in<em>c</em>lude "aaa.<em>h</em>" #in<em>c</em>lude void pri() {     printf("aaaaa\n"); } main.<em>c</em>: #in<em>c</em>lude "aaa.<em>h</em>" int main() {     pri();
makefile详解[转]
作者:陈皓概述——什么是<em>makefile</em>?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,<em>makefile</em>还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别在Unix下的软件<em>编译</em>,你就不能不自己写<em>makefile</em>了,会不会写
编译多个目录源码的Makefile写法
<em>文件</em>组织如下: --Makefile --sr<em>c</em><em>目录</em> --main.<em>c</em>pp --fun<em>c</em>.<em>c</em>pp --fun<em>c</em>.<em>h</em> --<em>h</em>ead<em>目录</em> --<em>h</em>ead.<em>c</em>pp --<em>h</em>ead.<em>h</em> --obj<em>目录</em> Makefile写法如下 DIR_OBJ = ./obj DIR_SRC = ./sr<em>c</em> SRC = $(wild<em>c</em>ard ${DIR_SRC}/*.<em>c</em>pp ${DIR_SRC}
新手请教如何通过makefile将当前目录下的所有.c文件编译成.o文件
各位大大们 本人新手,请教大家,如何编写一个Makefile<em>文件</em>,将当前<em>目录</em>下的所有.<em>c</em><em>文件</em><em>编译</em>成.o<em>文件</em>,当前<em>目录</em>下全部.<em>c</em><em>文件</em>都是子函数,无main函数。 请各位大大们帮忙解答,谢谢!!
一个简单的makefile的实现,编译当前目录下所有的.c文件
##################################################################### ## file : test <em>makefile</em> for build <em>c</em>urrent dir .<em>c</em> ## ## aut<em>h</em>or : jernymy ## ## date-time : 05/06/2010
两个简单的makefile的实现,编译当前目录下所有的.c文件
在网上找到的一个非常好的<em>makefile</em><em>文件</em>,可以<em>编译</em>本<em>文件</em>夹下的所有.<em>c</em><em>文件</em>,之需要定义输出<em>文件</em>名,不需要指定main<em>文件</em>的<em>文件</em>名,非常的好,非常的方便,注释也很详细,收藏并分享给需要的人。 ##################################################################### ## file : test <em>makefile</em> f
最简单的Makefile编写
最简单的Makefile编写C语言工程main.<em>c</em>max.<em>c</em>max.<em>h</em>Makefile<em>文件</em>运行 C语言工程 现在有一个C语言工程需要在Linux下<em>编译</em>,这个工程包含三个<em>文件</em>,它们的依赖关系是: main.<em>c</em>中调用max.<em>c</em>的函数,这个函数在max.<em>h</em>中声明。 main.<em>c</em> #in<em>c</em>lude "max.<em>h</em>" int main(int arg<em>c</em>, <em>c</em><em>h</em>ar *argv[]) { int n;
在Linux中,编写入门的makefile文件,然后逐渐迭代
文章<em>目录</em>编程环境:make 介绍:<em>makefile</em> 介绍:命名:规则:执行原理:编写自己的 makefil <em>文件</em>:准备铺垫:第1版本:第2版本:第3版本:第4版本:第5版本:运行效果:代码下载: 简 述: 在 Uinx/Linux 下,写下这篇适合小白学习的入门教程,理解 make,<em>makefile</em> <em>文件</em>。和开始编写自己的 <em>makefile</em> <em>文件</em>,使用 make 命令执行,生成我们所需要的项目。...
go语言编译的Makefile的示例文件
go vet 静态检查 go test 运行单元测试 go fmt 格式化 go build <em>编译</em> go run 运行 BINARY="example" VERSION=1.0.0 BUILD=`date +%FT%T%z` PACKAGES=`go list ./... | grep -v /vendor/` VETPACKAGES=`go list ./... | grep ...
linux学习笔记——在ubuntu系统下编译运行c程序并使用makefile管理项目
今天要运行一个工程,该工程用C/C++写的,在一个.<em>c</em><em>文件</em>里,并且还有一个<em>makefile</em><em>文件</em>。 先来看一下<em>编译</em>运行<em>c</em>程序的基本命令。 虽然刚装好的系统中已经有GCC了,但是这个GCC什么<em>文件</em>都不能<em>编译</em>, 因为缺少一些必须的头<em>文件</em>,所以要安装build-essential这个软件包。 输入命令: sudo apt-get install build-essential 其中:...
教会你如何编写makefile文件
最近一直在学习<em>makefile</em>是如何编写的。 当我们写的程序<em>文件</em>比较少的时候,敲入g<em>c</em><em>c</em> /g++,当你在大型工程中,在一个个<em>编译</em><em>文件</em>的话,你可能就会很郁闷。linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写<em>makefile</em><em>文件</em>。 <em>makefile</em>是一种特殊的<em>文件</em>格式,他将会帮你自动管理你的项目,很强大。 下面通过实例一步步讲解如何使用makefil...
Cmake知识----编写CMakeLists.txt文件编译C/C++程序
1.CMake<em>编译</em>原理 CMake是一种跨平台<em>编译</em>工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt<em>文件</em>,然后用<em>c</em>make命令将CMakeLists.txt<em>文件</em>转化为make所需要的<em>makefile</em><em>文件</em>,最后用make命令<em>编译</em>源码生成可执行程序或共享库(so(s<em>h</em>ared obje<em>c</em>t))。因此CMake的<em>编译</em>基本就两个步骤: 1. <em>c</em>make ...
linux下c语言程序、头文件h、Makefile的例子
<em>h</em>ttps://www.<em>c</em>nblogs.<em>c</em>om/wanglog/p/5555669.<em>h</em>tml <em>h</em>ttps://blog.<em>c</em>sdn.net/tototuzuoquan/arti<em>c</em>le/details/34972965 综合上述两篇博客~得出可复现的操作步骤 这个例子是在linux环境下,写一个add.<em>c</em> 一个sub.<em>c</em> 一个头<em>文件</em><em>h</em>ead.<em>h</em> 一个main.<em>c</em> 一个Makefile a...
Makefile找不到头文件
小白学习Makefile遇到一个小问题,一直没找到解决方案,求教各位大神解答 系统环境:Ubuntu14.04 <em>文件</em>夹<em>目录</em>下的<em>文件</em>:main.<em>c</em>,add.<em>c</em>,mat<em>h</em>.<em>h</em>,defi.<em>h</em>,Makefile <em>文件</em>内容: mat<em>h</em>.<em>h</em> ``` int add(int x,int y); ``` add.<em>c</em> ``` #in<em>c</em>lude int add(int x,int y) { return x+y; } ``` defi.<em>h</em> ``` #define A 1 ``` main.<em>c</em> ``` #in<em>c</em>lude #in<em>c</em>lude #in<em>c</em>lude int main() { int result = 0; result = add(4,A); printf("result:%d\n",result); return 0; } ``` Makefile ``` edit : main.o add.o g<em>c</em><em>c</em> -o edit main.o add.o main.o: main.<em>c</em> mat<em>h</em>.<em>h</em> defi.<em>h</em> g<em>c</em><em>c</em> -<em>c</em> main.<em>c</em> add.o: add.<em>c</em> mat<em>h</em>.<em>h</em> g<em>c</em><em>c</em> -<em>c</em> add.<em>c</em> <em>c</em>lean: rm edit main.o add.o ``` 在Linux该<em>文件</em>夹<em>目录</em>下执行make总是提示找不到defi.<em>h</em>头<em>文件</em>,但是我在Makefile和main.<em>c</em>中去掉defi.<em>h</em>头<em>文件</em>,并将main.<em>c</em><em>文件</em>中的“A”用“1”来代替就可以运行 请问各位大神这是什么原因导致的啊,本人新手,所以<em>makefile</em>中没用变量这些来定义头<em>文件</em>路径,只是用这种最基础的方式来写
Makefile 学习日记(六)——.c和.h不在同路径下的编译
现在我们已经能写同一<em>文件</em>夹下的较为自动化的Makefile了。但是如果.<em>h</em>/.<em>c</em>/.o分别在不同的<em>文件</em>夹下怎么搞呢? 今天研究.<em>h</em>/.o/.<em>c</em>分别存于不同<em>文件</em>夹的<em>编译</em>。 -------------------------------------------------------- 原料: 1,<em>文件</em>夹sour<em>c</em>e,包含前面例子所有的.<em>c</em><em>文件</em> 2,<em>文件</em>夹in<em>c</em>lude,包含与.<em>c</em>有关联关系...
makefile中如何包含不同目录下的问题
最近正在学<em>makefile</em>,但是一上来就遇到了一个问题。求各位大神指点。。。 情况如下: pro<em>文件</em>夹下有:sr<em>c</em><em>目录</em>,in<em>c</em>lude<em>目录</em>,<em>makefile</em><em>文件</em>。 其中: sr<em>c</em><em>目录</em>下有testCla
makefile多个*.c 、*.h文件编译成.ko文件
<em>编译</em>wifi模块时,改用多个*.<em>c</em>、*.<em>h</em>进行<em>编译</em>成单个.ko<em>文件</em>。 Makefile <em>文件</em>如下: #!/bin/bas<em>h</em> obj-m += mtk_<em>h</em>if_sdio.o <em>c</em><em>c</em>flags-y += -I$(sr<em>c</em>)/linux/in<em>c</em>lude -I$(sr<em>c</em>)/<em>c</em>ore/in<em>c</em>lude -I$(sr<em>c</em>)/in<em>c</em>lude KDIR := /<em>h</em>ome/kernel/iTop4412_Kernel...
Makefile详解——从入门到精通
转自C<em>h</em>inaUnix,作者gunguymadman,陈皓。链接地址:<em>h</em>ttp://www.<em>c</em><em>h</em>inaunix.net/j<em>h</em>/23/408225.<em>h</em>tml 陈皓 CSDN 博客:<em>h</em>ttp://blog.<em>c</em>sdn.net/<em>h</em>aoel/arti<em>c</em>le/details/2886 <em>h</em>ttp://blog.<em>c</em>sdn.net/rugl<em>c</em><em>c</em>/arti<em>c</em>le/details/7814546 写的相当不错...
linux多文件编译makefile
说到linux下多<em>文件</em><em>编译</em>。大多是<em>c</em>语言,因为linux内核以及许多的自由软件都是<em>c</em>语言编写的。当然还有<em>c</em>++语言,区别就是<em>c</em>语言使用g<em>c</em><em>c</em>,而<em>c</em>++语言使用g++。那么本文以<em>c</em>语言为例讲解。<em>c</em>++那么就能融汇贯通了将g<em>c</em><em>c</em>改为g++就好了。 1,单个<em>文件</em>的<em>编译</em>,比如有test.<em>c</em>    直接输入命令 #g<em>c</em><em>c</em> test.<em>c</em> -o test 执行,直接输入 #./t
Linux下C多文件编译Makefile
第一:Makefile<em>文件</em>编写| 1.第一个字母大写,其余的都是小写。| 2.Makefile关系到了整个工程的<em>编译</em>。| 3.可以执行操作系统的命令。| 4.其实Makefile的本质是定义了<em>文件</em><em>之间</em>的依赖性问题。| 5.第一个字母大写,其余的都是小写。| make命令执行时,需要一个 Makefile <em>文件</em>,以告诉make命令需要怎么样...
编译模块时,怎么在Makefile中指定.c文件中包含的.h文件的路径?
make使用隐晦规则,使用-I不知道应该加在什么位置;使用VPATH,vpat<em>h</em>也找不到,求达人指教,不胜感激!
makefile多个c文件
KERNELDIR ?= /<em>h</em>ome/linux/sing/linux-3.18.y MODULE_NAME=new obj-m += $(MODULE_NAME).o $(MODULE_NAME)-objs := led.o new2-3.o default:     $(MAKE) -C $(KERNELDIR) M=$(PWD) modules .PHONY : <em>c</em>lean <em>c</em>lean:  ...
makefile中以for循环实现多目标,(两子目录makefile)
子<em>目录</em>./test1/test9 ./test1/test6含有两个正确的<em>makefile</em> 1 SUBDIRS:=./test1/test9 ./test1/test6 2 subdirs: 3 for dir in $(SUBDIRS);do\ 4 $(MAKE) -C $$dir;\ 5 done make之后: for dir in ./test1/test9 ./test1/test6;do /bin/s<em>h</em>: 1: Syntax error: end of file unexpe<em>c</em>ted makea:3: re<em>c</em>ipe for target 'subdirs' failed make: *** [subdirs] Error 2
不同目录ch的Makefile怎么写
在我的sr<em>c</em><em>目录</em>下有<em>c</em>al<em>c</em>ultor.<em>c</em> 和<em>c</em>al_fun<em>c</em>tion.<em>c</em><em>文件</em>,在in<em>c</em>lude<em>目录</em>下又<em>c</em>al<em>c</em>ultor.<em>h</em><em>文件</em>,我在sr<em>c</em><em>目录</em>下的Makefile是这样写的: <em>c</em>al<em>c</em>ultor
关于linux内核模块编程时,多个源代码文件Makefile书写的问题
在学习内核模块编程的时候遇到了一些由于Makefile书写不正确导致的问题。一个.<em>c</em>源<em>文件</em>的Makefile按照网上的大部分资料介绍那样是没有问题的,多个源<em>文件</em>的内核模块编程时,就出现问题了,自己纠结了半天,最后查资料、请教大神才搞定的。把过程和解决方法贴出来,供大家参考,一起学习。 网上有很多文章讲解内核模块编程的例子,例如下面这个简单的例子: #<em>h</em>ello.<em>c</em> #ifndef __KE
gcc makefile 与 #include “xxx.h”的问题
我想把一个原本是用<em>makefile</em>构建的项目移植到<em>c</em>odeblo<em>c</em>ks上,方便调试。在<em>makefile</em>下它完全可以<em>编译</em>成功。但是我把它的源<em>文件</em>放到<em>c</em>odeblo<em>c</em>ks中<em>编译</em>是报错了,很多源<em>文件</em>都出错,
Makefile中依赖文件要不要写头文件
首先声明,本人刚入编程不久,很多东西处于起步状态,若表述有错误,还请指出,互相进步。 这段时间在学习Makefile,发现之前很多遇到的<em>makefile</em>依赖<em>文件</em>中都没有头<em>文件</em>,但是后来在系统学习的时候,发现书上经常把头<em>文件</em>写进Makefile的依赖<em>文件</em>中,我就特别好奇到底依赖<em>文件</em>中需不需要写头<em>文件</em>呢? 首先给大家分享一个自己写的代码,由于代码很长,本人故意将代码简化,只要能说明问题即可。 一
Makefile错误解决方法
 在<em>makefile</em>中写入: ifneq ($(KERNELRELEASE),) MODULE_NAME = <em>h</em>ellomodule $(MODULE_NAME)-objs := <em>h</em>ello.o obj-m := $(MODULE_NAME).o else KERNEL_DIR = /lib/modules/`uname -r`/build MODULEDIR := $(s<em>h</em>ell pwd) ...
make Makefile 指定Makefile文件中出现的头文件的搜索路径
make Makefile 指定Makefile<em>文件</em>中出现的头<em>文件</em>的搜索路径 不包含 在<em>makefile</em><em>文件</em>中源<em>文件</em>内容里面用in<em>c</em>lude引入的头<em>文件</em>的搜索路径。
多个文件夹的makefile怎么写啊
就是有多个<em>文件</em>夹,每个<em>文件</em>夹下面单独写的<em>makefile</em>可以执行,但总的只用一个<em>makefile</em>来处理应该怎么写啊
目录下的makefile文件编写
222
makefile 编译不同目录下的源文件
如题,今天我们来解决 在<em>makefile</em><em>文件</em>中 如何配置,<em>编译</em>在不同<em>目录</em>下的源<em>文件</em>,因为有时候有这样的场景嘛。测试场景<em>目录</em>结构如下,头<em>文件</em>在in<em>c</em>lude下,源<em>文件</em>在 sr<em>c</em>下,客户端程序main.<em>c</em> 在 03<em>makefile</em><em>文件</em>下。如何来<em>编译</em>main.<em>c</em>呢?<em>makefile</em><em>文件</em>内容<em>文件</em>内容有详细解释哟,由于在不同<em>目录</em>下,那么我们在<em>编译</em>.<em>c</em><em>文件</em>时,他们的路径就会有多个,模式匹配就要写多个。targ...
编写多文件,多目录makefile(借鉴网上的一篇文章来自己练手)
(1)首先<em>makefile</em><em>文件</em>的一些(红色字体是比较常用的) 预定义变量含义   $* 不包含扩展名的目标<em>文件</em>名称。   $+   所有的依赖<em>文件</em>,以空格分开,并以出现的先后为序,可能包含重复的依赖<em>文件</em>。   $第一个依赖<em>文件</em>的名称。   $?   所有的依赖<em>文件</em>,以空格分开,这些依赖<em>文件</em>的修改日期比目标的创建日期晚。   $@  目标的
关于Makefile中模式规则,自动推导以及包含头文件
关于Makefile中模式规则,自动推导以及包含头<em>文件</em> 一、Makefile里有什么? Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、<em>文件</em>指示和注释。 1、显式规则。 显式规则说明了,如何生成一个或多的的目标<em>文件</em>。这是由Makefile的书写者明显指出,要生成的<em>文件</em>,<em>文件</em>的依赖<em>文件</em>,生成的命令。 2、隐晦规则。 由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较...
Makefile (二):包括.h文件怎么弄?
这里面说到几个linux基本命令,如果有什么不清楚的可以看一下。这里写链接内容我们建立3个<em>文件</em>,功能还是打印 <em>h</em>elloworld <em>h</em>eadfile.<em>h</em>#in<em>c</em>lude extern int print(void);print_fun<em>c</em>.<em>c</em>#in<em>c</em>lude "<em>h</em>eadfile.<em>h</em>" int print (void) { printf("\n<em>h</em>elloworld!\n");
【Linux + Makefile】Makefile的高阶用法:解决C文件包含的头文件修改了,但C文件不重新编译的问题
在上一篇 《【Linux + Makefile】十分钟教你学会Makefile的FORCE 》文章的最后,笔者就FORCE的用法在一个示例工程中使用,提出了一个问题:为何build_info.<em>h</em>每次都是新生成的(有修改过),而main.<em>c</em>又是有in<em>c</em>lude “build-info.<em>h</em>”,但main.<em>c</em>却不是每次都重新<em>编译</em>呢?这个到底是不是违反了Makefile的基本规则呢?本文将给你答案,通过阅...
makefile在同一目录编译出多个可执行文件
测试可用的<em>makefile</em>,在同一<em>目录</em>下<em>编译</em>多个可执行<em>文件</em>
利用makefile编译简单的C++工程
写在前面 &amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;一部分windows程序员可能对makefie这个词很陌生,简单来说<em>makefile</em>是Linux/Unix环境下用于描述整个工程<em>编译</em>和连接
小项目实用makefile
本文,主要总结一下小项目中的一种实用<em>makefile</em>写法,为个人项目或小型项目<em>makefile</em>提供参考。                 1. 单个源码<em>文件</em>的<em>makefile</em>         常规的教程,或网上资料,都会以单个源码<em>文件</em>的<em>makefile</em>为示例,讲解<em>makefile</em>的最基本用法。它的用处,除了知道一下all、<em>c</em>lean外,无它。         <em>makefile</em>,主要用于管
Makefile范例:单文件夹多个.c和.h编译
2019独角兽企业重金招聘Pyt<em>h</em>on工程师标准&gt;&gt;&gt; ...
Makefile无法找到头文件
菜鸟最近在学习写<em>makefile</em><em>文件</em>,遇到了一个小问题,但是一直没有找到解决方案,所以希望得到大家的帮忙~~ 开发环境:Fedora 14(Kerne版本为2.6l)下使用GNU<em>编译</em> 工程<em>目录</em>:tes
Makefile参考样例1:单文件夹多个.c和.h编译
以下<em>makefile</em>比较简单,适用于所有源码在一个<em>文件</em>夹下面; 缺点:<em>编译</em>的时候没有检查.<em>h</em><em>文件</em>修改,所以修改了.<em>h</em><em>文件</em>需要<em>c</em>lean之后重新<em>编译</em>.
Linux下C语言编程基础(Makefile)
 假设我们有下面这样的一个程序,源代码如下: /* main.<em>c</em> */ #in<em>c</em>lude "mytool1.<em>h</em>" #in<em>c</em>lude "mytool2.<em>h</em>" int main(int arg<em>c</em>,<em>c</em><em>h</em>ar **argv) { mytool1_print("<em>h</em>ello"); mytool2_print("<em>h</em>ello"); }
多个文件makefile例子
本文主要是说明多个<em>文件</em>下,<em>makefile</em>的使用! 1. 假设我们有三个<em>文件</em>:<em>h</em>ello.<em>c</em>    sum.<em>c</em>   sum.<em>h</em> 每个<em>文件</em>的具体的内容如下: sum.<em>h</em>: int  sum(int a,int b); sum.<em>c</em>: #in<em>c</em>lude "sum.<em>h</em>"  //注意:因为sum.<em>h</em>是我们自己的一个头<em>文件</em>,所以要用“   ”,而不能用; int sum(int a,in
Makefile之大型工程项目子目录Makefile的一种通用写法
管理Linux环境下的大型项目,能够有一个智能的Build子系统会起到事半功倍的效果,本文描述Linux环境下大型工程项目子<em>目录</em>Makefile的一种通用写法,使用该方法,当该子<em>目录</em>内的<em>文件</em>有增删时无需对Makefile进行改动,可以说相当的智能。下面先贴代码(为了减少篇幅,一些非关键的代码被去掉): ROOTDIR = .      EXE_DI
linux下同时编译多个 .h和.c文件
同一个<em>目录</em>下,有test1.<em>h</em> test2.<em>h</em> test3.<em>h</em> test4.<em>c</em> test5.<em>c</em> test6.<em>c</em> 这几个<em>文件</em>都是相互关联的, 如何写一个<em>c</em>程序,能同时<em>编译</em>这几个.<em>c</em><em>文件</em>?
linux Makefile PHONY作用
PHONY 目标并非实际的<em>文件</em>名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名<em>文件</em>冲突,改善性能。 如果编写一个规则,并不产生目标<em>文件</em>,则其命令在每次make 该目标时都执行。例如:   <em>c</em>lean:   rm *.o temp 因为"rm"命令并不产生"<em>c</em>lean"<em>文件</em>,则每次执行"make <em>c</em>lean"的时候,该命令都会执行。如果<em>目录</em>中出现了"<em>c</em>l
文件编译makefile编写(附当前目录下所有.c/.cpp文件编译makefile)
C代码是如何变成可以执行程序的过程:     1、由预处理器把程序员所编写的C代码翻译成标准C代码,可以得到以.i结尾的预处理<em>文件</em>。         g<em>c</em><em>c</em> -E <em>c</em>ode.<em>c</em>         g<em>c</em><em>c</em> -E <em>c</em>ode.<em>c</em> -o <em>c</em>ode.i      2、由汇编器把标准的C代码生成汇编代码,可以得到以.s结尾的汇编<em>文件</em>。         g<em>c</em><em>c</em> -S <em>c</em>ode.i     3、由翻译器把汇编<em>文件</em>...
gcc编译C代码以及Makefile文件的书写
文章<em>目录</em>一、如何用g<em>c</em><em>c</em><em>编译</em>C代码二、如果编写Makefile<em>文件</em>三、在Makefile中使用变量四、Makefile的自动推导特性 一、如何用g<em>c</em><em>c</em><em>编译</em>C代码 如果只有单个<em>文件</em>,一般直接执行下面这条命令就可以进行<em>编译</em>了。 执行命令:g<em>c</em><em>c</em> <em>文件</em>名.<em>c</em> -o 目标<em>文件</em>名. 如果目标<em>文件</em>名不写,则默认<em>编译</em>出a.out的目标<em>文件</em>(Linux环境下)。 但是并不是想要一次性得到最终的.out<em>文件</em>,而...
C语言代码编译makefile模板
#<em>c</em>ompiler CC := g<em>c</em><em>c</em>#generate target file TARGET := main.o#sour<em>c</em>e file pat<em>h</em> SUBDIRS := ./ SUBDIRS += demo/aa/ SUBDIRS += bb/ SUBDIRS += <em>c</em><em>c</em>/#<em>h</em>eader file pat<em>h</em> INCLUDES := -I ./ INCLUDES += -I ./demo/aa...
一个简单的Makefile
#一个通用的Makefile,可以在linux各大平台下通用<em>编译</em><em>c</em>程序,这个版本在g<em>c</em><em>c</em>平台下实现,如需要课更改第二部的g<em>c</em><em>c</em>,也可以在第三部添加所需要的库,如有错误,欢迎即使纠正 #1.遵循可移植操作系统接口,即应用程序接口(API)+可移植性<em>c</em>源码 DSEF=_D_POSIX_SOURCE #2.这里以g<em>c</em><em>c</em>平台下<em>编译</em>为例,如需要可改为g++,arm-linux-g<em>c</em><em>c</em>和mips等平台 C...
Windows下MakeFile如何获取所有子目录中所有文件文件列表?
如题,Windows下MakeFile如何获取所有子<em>目录</em>中所有<em>文件</em>的<em>文件</em>列表? 其中,子<em>目录</em>的名字是任意的(也就是说不知道子<em>目录</em>名) 而且子<em>目录</em>下还有子<em>目录</em> 可以限定<em>目录</em>深度,但要求深度可变(也可以不
求助 内核makefile 将多个目录下.O编译成一个KO
例如 存在A <em>目录</em> 与B<em>目录</em>, A ---a.<em>c</em>,a1.<em>c</em>,a2.<em>c</em> B ---b.o 如何写<em>makefile</em>让A<em>目录</em>与B<em>目录</em><em>编译</em>成一个C.O<em>文件</em>。 假如这样写的话 obj-m += C.o C-ob
Makefile嵌套编译文件项目
在多<em>文件</em>的项目中,一个工程中的源<em>文件</em>比较多,其按类型、功能、模块分别放在若干个<em>目录</em>中,为了项目更加规整,我们常常要将源<em>文件</em>头<em>文件</em>执行<em>文件</em>等分开,所以在<em>编译</em>Makefile时就要做好整个项目的<em>编译</em>准备工作,Makefile定义了一系列的规则来指定,哪些<em>文件</em>需要<em>编译</em>,需要生成什么目标,需要生成库等等。 下面就用实例来列出这些规则,这也是一个基本框架,后边如果需要添加更多的源<em>文件</em>和<em>目录</em>就可以如法炮制,这就可以作为一个较为通
教你写Makefile(很全,含有工作经验的)
原文 转载文 Makefile 值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。       什么是<em>makefile</em>?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,<em>makefile</em>还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是...
如何写一个makefile 文件 枚举其子目录下所有makefile 文件并且make 他们 make 的时候可以指定参数
如何写一个<em>makefile</em> <em>文件</em> 枚举其子<em>目录</em>下所有<em>makefile</em> <em>文件</em>并且make 他们 make 的时候可以指定参数
makefile学习0:Makefile 编译生成多个可执行文件
all:server <em>c</em>lient server:server.<em>c</em> g<em>c</em><em>c</em> $&lt; -o $@ <em>c</em>lient:<em>c</em>lient.<em>c</em> g<em>c</em><em>c</em> $&lt; -o $@ <em>c</em>lean: rm -f server rm -f <em>c</em>lient 解释: $@ ——目标<em>文件</em>的名称; (2) $^ ——所有的依赖<em>文件</em>,以空格分开,不包含重复的依赖<em>文件</em>; (3) $&lt; ——第一...
makefile多级目录编译
添加类似于这种形式的规则: SRCS-y += $(wild<em>c</em>ard $(SUBDIR_SRC)/*.<em>c</em>) 其中SRCS-y表示<em>编译</em>的*.<em>c</em>源<em>文件</em>,SUBDIR_SRC为变量,表示需要<em>编译</em>的子<em>目录</em>,变量的赋值需要注意路径问题,wild<em>c</em>ard关键字可以使在引用变量的时候通配符可以展开(变量的定义和函数引用时,通配符将失效);关于wild<em>c</em>ard关键字更详细的说明,可以参考这篇博客:<em>h</em>ttps:...
Linux makefile 教程 非常详细,且易懂
            最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到<em>makefile</em>就越看越迷糊,可能是我的理解能不行。            于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。           后记,看完发现这篇文章和《Linux环境下的C编程指南》的<em>makefile</em>一章所讲述的惊人的相似,只是这篇文章从一个实例切
linux makefile 编译cc++文件
.SUFFIXES:.<em>c</em> .o //.<em>c</em>和.o建立关联CC=g<em>c</em><em>c</em> SRCS=<em>h</em>ello.<em>c</em>\ add.<em>c</em> //同时<em>编译</em>两个.<em>c</em><em>文件</em>OBJS=$(SRCS:.<em>c</em>=.o)//ORJS=<em>h</em>ello.o add.o EXEC=<em>h</em>ellostart: (OBJS)//依赖<em>h</em>ello.oadd.o(OBJS) //依赖<em>h</em>ello.o add.o (CC) -o
makefile---单个源文件,单个可执行文件(C/C++)
作用:这是一个<em>makefile</em><em>文件</em>,作用就是<em>编译</em>一个源<em>文件</em>,生成一个可执行程序。 环境:Vmware Workstation;CentOS-6.4-x86_64 下面代码直接保存成<em>makefile</em>: .SUFFIXES:.<em>c</em> .o CC=g<em>c</em><em>c</em> SRCS=main.<em>c</em> OBJS=$(SRCS:.<em>c</em>=.o) EXEC=main start: $(OBJS) $(CC) -o $(EXE
Linux C Makefile编译
下面是一个Linux <em>编译</em><em>c</em> 线程的Makefile例子。 ################################################################################ # $@ 表示规则中的目标<em>文件</em>集。获取所有的目标<em>文件</em> # # $% 仅当目标是函数库<em>文件</em>中,表示规则中的目标成员名。例如, # 如果一个目标是"foo.a(bar.o)",
利用makefile文件编译c++源文件
在Linux下,利用<em>makefile</em><em>文件</em><em>编译</em>链接<em>c</em>/<em>c</em>++源<em>文件</em>,并生成可执行<em>文件</em> 本文介绍了<em>makefile</em><em>文件</em>的写法和相应参数的含义以及如何生成、使用so库<em>文件</em>
makefile以及用gcc进行C编译
C<em>编译</em>过程: 预处理 .<em>c</em> -&amp;gt; .i 汇编    .i -&amp;gt; .s <em>编译</em>    .s -&amp;gt; .o 链接    .0 -&amp;gt; 可执行<em>文件</em>   g<em>c</em><em>c</em><em>编译</em>器: g<em>c</em><em>c</em> [选项]  [<em>文件</em>名] 选项包括:     假设源程序<em>文件</em>名为test.<em>c</em>。 1. 无选项<em>编译</em>链接 用法:#g<em>c</em><em>c</em> test.<em>c</em> 作用:将test.<em>c</em>预处理、汇编、<em>编译</em>并链接形成可执行<em>文件</em>...
Makefile新手向教程:跟着+c同学step by step写makefile
前言 最近在写底层C代码需要用到<em>makefile</em>来简化<em>编译</em>流程并优化<em>文件</em><em>目录</em>结构,一直没找到很好的<em>makefile</em>教程(一个通俗易懂的渐进式的教程),通过+<em>c</em>同学终于是找到了他在之前在学校实训的时候写的一篇文章,由于网站只能通过校内网查阅,在此决定分享一下,并留作个人往后学习查阅使用。 正文 原文名字:Makefile的使用 原文作者:DaddyTrap Makefile简介 ...
linux下编译 makefile 将参数传递给c文件
linux下<em>编译</em>时,通过g<em>c</em><em>c</em>的选项可以将<em>makefile</em>中的变量作为宏定义传递给<em>c</em><em>文件</em>,具体使用如下:   测试用 C<em>文件</em>源码:                    #in<em>c</em>lude &amp;lt;stdio.<em>h</em>&amp;gt; int main() { #ifdef DEFINE_TEST printf(&quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt;Re<em>c</em>eive define from makefi...
Linux下的C/C++开发基础(编写makefile编译C/C++、链接、可执行程序)
本文重点介绍C/C++源码工程的<em>编译</em>链接,<em>编译</em>器g<em>c</em><em>c</em>/g++的安装配置略过... 1. 安装配置g<em>c</em><em>c</em> g++ 2. 创建<em>文件</em> test.<em>h</em> /test.<em>c</em> / file.<em>h</em>  / file.<em>c</em>pp  3. <em>编译</em>.o库: g<em>c</em><em>c</em> -<em>c</em> / g++ -<em>c</em>     链接生成静态库.a库: ar -r    链接生成动态库.soK库:g<em>c</em><em>c</em> -s<em>h</em>ared -o/ g++ -s<em>h</em>ared -o    ...
目录makefile的书写
由于涉及到多<em>目录</em>下<em>makefile</em><em>文件</em>的编写,每个<em>目录</em>下<em>makefile</em> <em>文件</em>都不相同。现在简单说下我的多<em>目录</em>下<em>makefile</em><em>文件</em>的编写。我把所需要的<em>目录</em>都放在sr<em>c</em>里面,如图所示其中libs存放库<em>文件</em>,bin存放可执行<em>文件</em>,app存放源<em>文件</em><em>目录</em>,in<em>c</em>lude存放所要包含的头<em>文件</em><em>makefile</em>编写如下:TOPDIR    := $(s<em>h</em>ell if [ "$$PWD" != "" ]; t<em>h</em>
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
基于Vb+sql的图书管理系统+论文下载
本系统是一个基于客户/服务器(Client/Server)模式的高校图书管理系统,可以实现远程对服务器端的数据库进行操作,而且由于数据库的业务逻辑在服务器端实现,提高了系统的可维护性 相关下载链接:[url=//download.csdn.net/download/qingcongcuizu/2468603?utm_source=bbsseo]//download.csdn.net/download/qingcongcuizu/2468603?utm_source=bbsseo[/url]
华为SAN存储在Red_Hat系统下的主机连通性指南_20150427013_V6下载
华为SAN存储在Red_Hat系统下的主机连通性指南_20150427013_V6 相关下载链接:[url=//download.csdn.net/download/cnariz/9314825?utm_source=bbsseo]//download.csdn.net/download/cnariz/9314825?utm_source=bbsseo[/url]
信号的时域波形和频域频谱下载
方波、三角波、随机序列信号、正弦波及带有加性高斯白噪声的正弦信号序列;产生2个频率信号的叠加信号,并分析该叠加信号的时域波形和频域信号频谱特性; 相关下载链接:[url=//download.csdn.net/download/lg1558160/10484971?utm_source=bbsseo]//download.csdn.net/download/lg1558160/10484971?utm_source=bbsseo[/url]
我们是很有底线的