导航:首页 > 文件教程 > makefile文件格式

makefile文件格式

发布时间:2024-09-28 17:11:04

① .mk是什么格式的文件,用什么软件打开

.mk文件是 makefile 文件,makefile定义了一系列的规则来指定,哪些文件需回要先编译,哪些文件需要后答编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。

② linux中用C语言编写完模块后怎么编写makefile文件用到什么命令以什么格式编写

vi Makefile #打开vi编辑器
在编辑器里输入以下内容:

#当只有一个文件需要编译的时候
finame:filename.c #冒号前面是要编译成的目标文件(可以任意命名),后面是你编写的C文件
gcc -o filename filename.c #gcc前面是按Tab制表符

#filename:filename.c 是指filename文件的生成要依赖filename.c文件
#然后换行后按Tab键,然后编写编译规则

#make命令一般是同时编译多个文件时才使用,以下是同时编写多个独立的C文件
#filename1和郑郑filename2……没有依赖关系
filename1:filename1.c
gcc -o filename1 filename1.c
filename2:filename2.c
gcc -o filename2 filename2.c

#makefile编译多个需要依赖(互相调用的文件)
main:main.o file1.o file2.o #main是最终要生成的目标文件,后面.o就是需要调用的文件的对象文件
main.o:main.c
gcc -c main.c #生成main.o对象文件,main.c里面是有主函数的
file1.o:file1.c
gcc -c file1.c
file2.o:file2.c
gcc -c file2.c
#以上差不多就可以用了
#一下是我找的例子

#include "mytool1.h"
void mytool1_print(char *print_str)
{
printf("This is mytool1 print %s\n",print_str);
}
/* mytool2.h */
#ifndef _MYTOOL_2_H
#define _MYTOOL_2_H
void mytool2_print(char *print_str);
#endif
/* mytool2.c */
#include "mytool2.h"
void mytool2_print(char *print_str)
{
printf("This is mytool2 print %s\n",print_str);
}
当然由于这个程序是很短的我们可以这样来编译
gcc -c main.c
gcc -c mytool1.c
gcc -c mytool2.c
gcc -o main main.o mytool1.o mytool2.o
这样的话我们也可以产生main 程序,而且也不时很麻烦.

# 这是上面那个程序的Makefile 文件
main:main.o mytool1.o mytool2.o
gcc -o main main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
gcc -c main.c
mytool1.o:mytool1.c mytool1.h
gcc -c mytool1.c
mytool2.o:mytool2.c mytool2.h
gcc -c mytool2.c
有了这个Makefile 文件,不过我们什么时候修改了源程序当中的什么文件,我们只要执行
make 命令,我们的编译器都只会去编译和我们修改的文件有关的文件,其它的文件她连理
都不想去理的。
下面我们学习Makefile 是如何编写的。
在Makefile 中也#开始的行都是注释行.Makefile 中最重要的是描述文件的依赖关系的说
明.一般的格式是:
target: components
TAB rule
第一行表示的是依赖关系.第二行是规则.
比如说我们上面的那个Makefile 文件的第二行
main:main.o mytool1.o mytool2.o
表示我们的目标(target)main 的依赖喊槐颂对象(components)是main.o mytool1.o mytool2.o
当倚赖的对象在目标修明慧改后修改的话,就要去执行规则一行所指定的命令.就象我们的上
面那个Makefile 第三行所说的一样要执行 gcc -o main main.o mytool1.o mytool2.o
注意规则一行中的TAB 表示那里是一个TAB 键

③ make命令生成什么文件

make 命令后跟的文件名是 Makefile 文件,如果你没有后带文件名就自动搜索本目录下名为“Makefile”的文件,这个文件是没有后缀名的。至于它生成了什么就看你的 Makefile 文件怎么描述了。从你所问的内容来看,你需要学习“Makefile 文件的结构”,你就用这引号里的内容作为关键词搜索一下吧,网上有很多材料,你花半小时看看其中一篇估计就可以了。

④ 使用linux编程怎么写makefile

Makefile语法基础
在Linux下,自动化编译工具是通过make命令来完成的(姿弊一些工具厂商也提供了它们自己的make命令,如gmake等),make命令的基本格式如下:
make
[-f
makefile]
[label]
它可以通过-f参数指定输入文件,当省略-f参数时,默认输入文件名为Makefile,由于我们通常不用这个-f参数,往往就用默认的Makefile文件名。
Makefile是一个文本文件,它是基于一定的语法规则的,它的基本执行规则定义如下:
target
:
[prerequisites]
command
target
标签,模郑用于标志当前构建的规则,它也可以是文件。
prerequisites
依赖项,在构建该标签的时候先执行的规则
command
make需要执行的命令。(任意的Shell命令)
注意:Makefile的target是顶格写的,而Command需要加一个Tab键。我这里为了排版看起来舒服点,每一行都多加了一个Tab键,如果要使用本文的Makefile示例,请去掉各行的第一个Tab键,否则make的时候报错。
例如,我们编写一个简单的Makefile:
clean:
@echo
"clean"
all:
@echo
"all"
当我们直接执行make命令的时候,输出如下:
tianfang
>
make
clean
tianfang
>
make
all
all
tianfang
>
make
clean
clean
从中我们可以看到:默认情迹码族况下构建第一个标签。可以通过在命令行参数中通过参数构建指定标签。

⑤ 在window下写mekefile保存为什么格式

makefile是文本文件,也就是说:和C/C++/JAVA等的源程序一样,它是没有特殊格式的纯ASCII文件,只有ASCII中回车、换行、空格、制表等基本格式。
任何用来进行无格式文本编辑的软件都可以打开并编辑它。如Win自带的记事本、C/C++语言编辑器、UltraEdit等。
makefile是一种脚本,编写用来建立一定的目标,而该目标一般依赖于另外一些文件的跟新。

⑥ makefile教程

基于 Make 命令教程 - 阮一峰的网络日志 (ruanyifeng.com) 总结,可以将make看作一个自顶向下的构建工具

在makefile相同目录下执行 make 可查看效果

makefile文件名默认 Makefile 或 makefile .也可以指定文件: make -f rules.txt 或者 make --file=rules.txt

如果 前置条件 满足,执行 命令 构建 目标

目标可以是文件,也可以是某个操作的名字

运行 make clean 可以执行这个操作:

如果make检测到当前目录中存在clean文件,就不会执行clean操作,因此最好标明clean是个操作

前置条件通常是一组文件名,用空格分割,指定了目标是否重新构建的标准:只要有一个前置文件不存在,或者有过更新(前置文件的修改时间晚于目标文件),目标就需要重新构建

如果当前目录没有source.txt,make会首到makefile的下面去寻找有没有生成source.txt的目标

命令行首默认必须是一个tab键!!!,如果测试过程有报错记得检查下 ,如果想替换,可用.RECIPEPREFIX替换(对整个文件生效 (The .RECIPEPREFIX is only supported since 3.82

每条命令都在单独的shell中执行,这些shell没有关联,也没有继承关系

解决办法就是通过写成一行

或者用反斜杠转义

最后一个办法是加上 .ONESHELL: 命令 (同上

# 表示注释

正常情况下,make会打印每条命令,即使注释也会打印,在命令前面加@可以关闭打印

通配符

用来指定一组符合条件的文件名,与bash类似 * ? [...]

允许对文件名进行模式匹配,匹配符是%

下面的命令将 file1.c 编译为file1.o

允许使用 = 自定义变量

调用shell变量,需要两个$$,因为make命令会使$转义

变量支持引用

为了区分生效时间,分成四类 gnu make - What is the difference between the GNU Makefile variable assignments =, ?=, := and +=? - Stack Overflow

内置变量

$(CC)指向当前编译器

$(MAKE)指向当前make工具

详细如表 https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html

自动变量

https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html

判断和循环 与bash相同

函数格式

内置函数

https://www.gnu.org/software/make/manual/html_node/Functions.html

阅读全文

与makefile文件格式相关的资料

热点内容
如何在电脑文件上添加图片 浏览:297
xslist网站怎么登录 浏览:735
ftp不能直接打开文件 浏览:145
ps调整后的xps文件 浏览:572
小米如何取消wifi和数据同时使用 浏览:347
微信数据6个g怎么清理 浏览:533
找厂房去哪个app 浏览:881
linuxmini 浏览:997
如何找编程类的工作 浏览:286
jsp从mysql读取时间 浏览:680
有什么app可以存app 浏览:603
游戏编程从哪里学的 浏览:738
win8文件布局 浏览:308
数据存储参数配置文件 浏览:122
面膜去哪个网站买好 浏览:627
天下游旧版本 浏览:622
iphone6按键震动 浏览:528
u盘没有显示怎么打开文件夹 浏览:13
win7升级win10激活失败 浏览:914
win10系统文件缺失介质修复 浏览:900

友情链接