×

makefile是什么意思 file f

makefile是什么意思(什么是makefile如何编写makefile)

admin admin 发表于2022-12-26 17:39:39 浏览52 评论0

抢沙发发表评论

本文目录

什么是makefile如何编写makefile

makefile是Linux下使用gcc编译源程序时,所依赖的规则文件。
比如你在编译一个hello.c的源文件,使用gcc编译器,如何编译?生成可执行程序的名字叫什么,都需要在makefile里面定义这个规则。
具体教程,可以参考宅学部落(微信公众号):《Makefile工程实践》视频教程,教你从零开始一步一步如何写一个企业项目的Makefile,从小白到专家。

请大神详解释一下linux中这个makefile是什么意思

这个是编译内核模块的 makefile, 这个makefile 可以用于在编译内核时一起编译(当 KERNELRELEASE 不为空时)这个模块,或者用在单独编译此模块的时候用。
KERNELRELEASE 是编译linux内核时的一个变量,内容为当前所编译内核的版本。
/lib/modules/$(shell uname -r)/build 这个对应于当前linux系统运行内核所对应的编译路径,所有为当前运行内核进行编译的模块,都要 -C 到这个目录来进行。
PWD := $(shell pwd) 给 PWD 变量赋值,内容为 shell 命令 pwd 的输出 (即当前目录)。
你需要了解一下 makefile 的基础, 以及 linux 内核编译相关的知识。 或者就直接用这个makefile,linux内核模块编译的makefile的基础框架都是这样的。

makefile中 什么意思

$@: 代表规则中的目标文件名。如果目标是一个文档(Linux中,一般称.a文件为文档),那么它代表这个文档的文件名。在多目标的模式规则中,它代表的是哪个触发规则被执行的目标文件名。

makefile这句话什么意思

一般 $(CC) 指的就是gcc编译器,对于CFLAGS,我们可以
CFLAGS=“-DDEBUG “ 那么在跟$(CC)一起用时候,就可以将“-DDEBUG “这个编译参数加上了,
-I$(DBM_INC_PATH) -l就是要链接的库文件,那么后面这个变量,肯定就包含了你的动态链接库的文件位置了,DFLAGSS 这个变量肯定就是这个库要编译时候要加上的编译标志
-c 就是就 只编译不链接,生成的是.o 文件
$《 就是第一个依赖文件的名称
makefile之所以要这么写,目的就是要尽量做到“通用”, 这就是makefile的特性。

makefile这句话是什么意思

回答和翻译如下 :
windows平台下的
link $(LDXXFLAGS) $(OBJECTS) -o $@ $(EXTRA_LIBS)
前面的部分我知道,是把OBJECTS链接成$@这个目标。
后面跟的EXTRA_LIBS是什么意思?EXTRA_LIBS是一堆dll,
代码里有用到dll里的函数。但最后生成的目标并没有把dll链接进去。
前面的部分我知道,是把OBJECTS链接成$@这个目标。
前面的部分我知道,是把对象链接成@这个目标美元。
qián前 miàn面 de的 bù部 fen分 wǒ我 zhī知 dao道 , shì是 bǎ把 duì对 xiàng象 liàn链 jiē接 chéng成 @ zhè这 ge个 mù目 biāo标 měi美 yuán元 。
后面跟的EXTRA_LIBS是什么意思?EXTRA_LIBS是一堆dll,
后面跟的extra_libs是什么意思?extra_libs是一堆DLL,
hòu后 mian面 gēn跟 de的 e x t r a _ l i b s shì是 shén什 me么 yì意 si思 ? e x t r a _ l i b s shì是 yī一 duī堆 D L L ,
代码里有用到dll里的函数。但最后生成的目标并没有把dll链接进去。
代码里有用到DLL里的函数链接进去但最后生成的目标并没有把DLL。

Makefile 是如何工作的其中的宏定义分别是什么意思

你问的问题就好比一个国家是如何运作的。其中各个部委都是干什么的。因此有点难以回答。不过可以从以下几点进行简单解释:
makefile是一个文本文件,用于描述程序源代码之间以及程序可执行代码与源代码之间的依赖关系。
简单例子:最终编译生成的可执行文件ab.out是由a.c和b.c共同编译生成的,那么make文件就要写两行:
ab.out: a.c b.c
gcc a.c b.c -o ab.out
第一行描述了依赖关系,第二行描述了依赖关系是如何达成的。
更复杂的例子:最终编译生成的可执行文件ab.out是由a.c和b.obj功能编译生成的,而b.obj是由b1.c和b2.c编译而成,那么要写好多行:
ab.out: a.c b.obj
gcc a.c b.obj -o ab.out
b.obj: b1.c b2.c
gcc -c b1.c b2.c -o b.obj
这就是makefile的工作方法。
关于宏定义,简单点说就是文本替换。为了方便使用不同的编译器或者编译环境以及硬件环境,一些复杂的软件使用了大量的宏定义来代替诸如“gcc”这样的最基本的东西。不要太在意红定义,多看,从简单的看起,就会了。

c++编译打包makefile是啥意思

听你问这个问题,就知道你接触不到Makefile了。不用管它了,直接用IDE编译就行了嘛
Makefile是写给make看的,make是一个gnu的工具链的一个。用于编译和构建的自动工具。一般你下开源的代码,就有了,你自己看readme。就知道Makefile是怎样生成的。Makefile也能自己写,不过到你需要些Makefile的时候,你自然就懂了。

请问这个简单Makefile是什么意思

由于objects = pro1 pro2
所以all:$(objects)等于all:pro1 pro2,意思是all(即只执行make时的目标)依赖于pro1和pro2,要先确认pro1和pro2是否是最新的。
pro1:Process_1.c表示pro1这个目标依赖于Process_1.c这个文件,如果Process_1.c更新了,就要执行下边的$(CC) -lrt $《 -o $@
$《表示依赖,这里就是Process_1.c,$@表示目标文件,这里就是pro1。-o后边跟的是输出文件名
去看下《跟我学习Makefile》吧

Makefile 到底是什么

首先要知道什么是编译,然后要知道命令行编译,然后什么是依赖,
make就是为了解决命令行编译时的依赖的自动化编译工具,makefile是make的参数,告诉make具体的依赖关系
举个例子,编程相当于做饭,你可以像美食家一样做得很有艺术,也可以像工厂流水线一样自动化,命令行编译就是流水线,先后顺序就是依赖关系,makefile就是菜谱,菜谱里说清楚了一个菜由哪些步骤组成