makefile到底是干什么用的?
发布网友
发布时间:2022-04-23 19:41
我来回答
共1个回答
热心网友
时间:2023-10-05 07:11
一个工程(project)中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(通常对于一个工程来说会是多个)正确的
Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
如果你使用的是带有图形用户界面的集成化开发环境如VisualStudio,一般用不着手动编写makefile文件,当你需要时,VS可以为你自动生成。追问那我想问一下,为什么要在linux编C程序呢?如果说是为了有些linux程序的话,为什么我不能用VS写出来代码,然后再放到linux上转不就可以了吗?为什么还要用vim这样的编译器来编呢?
因为觉得vs比vim好用多了。
Makefile 是如何工作的?其中的宏定义分别是什么意思?
makefile是一个文本文件,用于描述程序源代码之间以及程序可执行代码与源代码之间的依赖关系。简单例子:最终编译生成的可执行文件ab.out是由a.c和b.c共同编译生成的,那么make文件就要写两行:ab.out: a.c b.c gcc a.c b.c -o ab.out 第一行描述了依赖关系,第二行描述了依赖关系是如何达成...
makefile文件的作用是什么?
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率 记得要赞一个哦
makefile清空执行文件干嘛
Makefile是一种配置文件,Makefile一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,甚至于进行更复杂的功能操作,因为makefile就像一个命令解析器脚本一样,其中也可以执行操作系统的命令。makeclean清除上次...
makefile里面 gcc -O2 -o $@ $< 是什么意思
-O2表示优化选项,2表示最优优化,即编译器会优化你的程序;-o表示后边接的是文件名称;$@是Makefile的通配符,代指前面指定的文件名。一些常见的自动化变量说明如下:(1) $@ ——目标文件的名称;(2) $^ ——所有的依赖文件,以空格分开,不包含重复的依赖文件;(3) $< ——第一个依赖文件...
...make: *** 没有指明目标并且找不到 makefile。
./configure 的configure脚本的功能就是生成Makfile知道不?Makefile就是make命令所执行的脚步。。哎,,configure的错误很明显了,是缺少apr组件,,很早以前这个apr是集成在了httpd里的,现在独立出来了,需要你自己安装。apr这个软件同样是apache上的,自己可以找一下,httpd你都找到了找apr应该不难,记得...
Makefile中通配符*与%的区别是什么?
此两者均为通配符,但更准确的讲,%为Makefile规则通配符,一般用于规则描述,如 .o:%c (CC) $< -o 表示所有的目标文件及其依赖文件,或者 (filter %.c ,SOURCES)此处SOURCES表示包含.c .cc .cpp等多类型源文件,该过滤器函数将c文件过滤出来,而%.c即为此过滤器规则。通配符*则不具备上述...
makefile 的ifeq和ifdef的区别
makefile 的ifeq和ifdef的区别 ifeq是这样用的: ifeq(a,b) 命令1; else 命令2; 意思是如果a等于b,则执行命令1,如果不相等则执行命令2. ifdef是这样用的: ifdef a 命令1; else 命令2; 意思是说如果之前已经有这样的定义了:#define a a可以是语句也可以是变量 则执行...
为什么windows下不怎么用makefile,而Linux/Unix下用makefile很多?
Windows下面也有makefile的,只不过是被那几个按钮(编译,连接,运行)给隐藏了。全部给你智能化了,不需要自己编写了。linux下不是有eclipse等IDE吗?linux下讲究的是一个工具只实现自己的工作,然后多个工具集合起来干大事。
...JAVA集成环境NetBeans IDE 各个文件夹都是干什么的?
Makefile 支持。 类继承关系浏览器。 文件导航。 UML:正向和反向工程:支持 UML 模型图生成 Java 代码。 支持8种 UML 图:Activity diagram, Class diagram, Collaboration diagram, Component diagram, Deployment diagram, Sequence diagram, State diagram 和 Use Case diagram 自定义代码生成模式。 集成UML 工具:...
初中有什么生存规则.好的学校怎么生存,坏的学校怎么生存?
在arduino软体包的hardware\arduino\bootloaders\atmega路径下有一个makefile的档案,用记事本开启,可以看到相应的arduino板对应用到的bootloader程式和晶振频率。 在用proteus模拟时,选择相对应的微控制器,配置晶振。微控制器应该与arduino在编译时选择的board上的一致。 三:往其他单片机板上烧录 编译得到的Hex档案往其他...