makefile phony(用一个makefile编译出多个文件)

:暂无数据 2026-06-22 20:10:06 :1

makefile phony(用一个makefile编译出多个文件)

其实makefile phony的问题并不复杂,但是又很多的朋友都不太了解用一个makefile编译出多个文件,因此呢,今天小编就来为大家分享makefile phony的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

用一个makefile编译出多个文件

使用 .PHONY, 使用方法见下面描述或参考链接. 经过测试可行.
---------
phony 目标可以有依赖关系。当一个目录中有多个程序,将其放在一个makefile 中会更方便。因为缺省目标是makefile 中的第一个目标,通常将这个phony 目标叫做"all",其依赖文件为各个程序:
all : prog1 prog2 prog3
.PHONY : all
prog1 : prog1.o utils.o
cc -o prog1 prog1.o utils.o
prog2 : prog2.o
cc -o prog2 prog2.o
prog3 : prog3.o sort.o utils.o
cc -o prog3 prog3.o sort.o utils.o
这样,使用"make"将可以将三个程序都生成了。d
当一个phony 目标是另一个的依赖,其作用相当于子程序,例如:
.PHONY: cleanall cleanobj cleandiff
cleanall : cleanobj cleandiff
rm program
cleanobj :
rm *.o
cleandiff :
rm *.diff
----------
我测试的Makefile:
OBJS=main.o sub.o
all : test sam
.PHONY:all
test : $(OBJS)
gcc -o test $(OBJS)
sam : sam.o
gcc -o sam sam.o
main.o : main.c sub.h
gcc -c main.c
sub.o : sub.c sub.h
gcc -c sub.c

sam.o : sam.c
gcc -c sam.c

makefile中phony和force的区别

应该叫传入参数或者变量,可以的。
你可以直接在Make的时候,在命令行下面传入一个参数或者变量,它会覆盖掉Makefile里面的变量或者参数。比如,在你的Makefile里面定义了一个变量age.

.PHONY:all
AGE = 12
all:
    @echo "age=$(AGE)"
你make的时候,打印信息是age=12
当你使用make AGE=20时,打印的信息就是:age=20,AGE作为参数传入,然后会覆盖掉Makefile里面定义的变量。
更多深入的教程,可以百度:Makefile工程实践

makefile中 怎么写 install 格式

.PHONY: install
--------------------
原始内容
--------------------
install: liba.so
cp liba.so /xxx/xxx/xxx/liba.so
只是举了个例子,因为也不知道你的程序,完全不懂make,最好看书。
别人的例子:
使用install的
prefix=/usr/local
install: our_program
install -m 0755 our_program $(prefix)/bin
install -m 0644 *.png $(prefix)/share/our_program/icons
.PHONY: install

makefile 怎样输出一个换行符

makefile 规则的其它写法,如在命令中使用通配符,和把命令与依赖写在同一行,以及换行符的使用。看例子 test006,除了 makefile 文件不一样,test006 与 test005 的其它文件是一样的。

#执行方式:
#make -f test006.mk
#################################################################
#说明:
#1.介绍 makefile 规则的其它写法
#################################################################
#不能把 OBJ 改为 *.o
OBJ = math.o main.o
#命令与依赖关系在同一行,中间用 隔开
test.exe : $(OBJ);cc -o test.exe $(OBJ)
math.o : math.h common.h
#是换行符的意思,makefile 对同一行有多少个字符没有限制
main.o : main.h math.h /
common.h
#用 PHONY 显示说明 clean 是一个伪目标
.PHONY : clean
clean:
#在命令中使用通配符
-rm test.exe *.o

如何用makefile编译多个c文件

假设有下面几个c++文件:
wherewhen.h wherewhen.c
countdown.h countdown.c 包含了math.h, 需要连接库文件
main.c 主函数, main.c 包含了两个头文件 wherewhen.h and countdown.h
1、第一种编译方法:
g++ -Wall -g wherewhen.c countdown.c main.c -lm -o myprogram
生成可执行文件myprogram
2、第二中编译方法, 分别编译各个文件:
g++ -Wall -g -c wherewhen.c
g++ -Wall -g -c countdown.c
g++ -Wall -g -c main.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram

makefile 循环删除文件

别把makefile和shell脚本搞混了……

注意, -rm 前面不是空格,必须是一个 tab 制表符。

把下面的内容存入 makefile, 然后用make clean来删除这些文件。

FILES = mainc.o mainc testc.o testc
.PHONY: clean
clean:
    -rm $(FILES)

大家来帮我看看怎样写一个这样的Makefile文件,通过Makefile文件编译这个多文件的C语言程序

以下是一个最简单的多文件+makefile的形式

编译采用gcc 你可以修改成你的编译器

三个文件 main.c func.c makefile

main.c

#include 《stdio.h》
extern void func();//这个应该放在头文件中的 比如func.h 简单起见 就直接声明了
int main()
{
func();
}

func.c

#include 《stdio.h》
void func()
{
printf("hello world\n");
}

makefile

.PHONY: all main.o func.o
all: main.o func.o
@gcc main.o func.o -o out
main.o: main.c
@gcc -c main.c -o main.o
func.o: func.c
@gcc -c func.c -o func.o

所有的都是最简单的

Makefile怎么排除某两三个文件不编译

phony 目标可以有依赖关系。当一个目录中有多个程序,将其放在一个makefile 中会更方便。因为缺省目标是makefile 中的第一个目标,通常将这个phony 目标叫做"all",其依赖文件为各个程序:
all : prog1 prog2 prog3
.PHONY : all
prog1 : prog1.o utils.o
cc -o prog1 prog1.o utils.o
prog2 : prog2.o
cc -o prog2 prog2.o
prog3 : prog3.o sort.o utils.o
cc -o prog3 prog3.o sort.o utils.o

用一个makefile编译出多个文件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用一个makefile编译出多个文件、用一个makefile编译出多个文件的信息别忘了在本站进行查找哦。

makefile phony(用一个makefile编译出多个文件)

本文编辑:admin

更多文章:


怎么做网站网页归档(网页应该怎么做网页设计有哪些要求)

怎么做网站网页归档(网页应该怎么做网页设计有哪些要求)

大家好,怎么做网站网页归档相信很多的网友都不是很明白,包括网页应该怎么做网页设计有哪些要求也是一样,不过没有关系,接下来就来为大家分享关于怎么做网站网页归档和网页应该怎么做网页设计有哪些要求的一些知识点,大家可以关注收藏,免得下次来找不到哦

2026年10月11日 05:30

跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意

跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意

本篇文章给大家谈谈二郎腿贴地,以及跷二郎腿太低好吗对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 05:10

易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)

易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)

本篇文章给大家谈谈易语言点击js按钮,以及易语言网页填表怎样点击链接为“javascript:void(0)“的按钮对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要

2026年10月11日 03:00

regards(Regards,什么意思)

regards(Regards,什么意思)

其实regards的问题并不复杂,但是又很多的朋友都不太了解Regards,什么意思,因此呢,今天小编就来为大家分享regards的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 01:10

dom4j文档(如何去掉用dom4j生成的XML文档中的)

dom4j文档(如何去掉用dom4j生成的XML文档中的)

其实dom4j文档的问题并不复杂,但是又很多的朋友都不太了解如何去掉用dom4j生成的XML文档中的,因此呢,今天小编就来为大家分享dom4j文档的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 01:00

compare with造句(用compared with和compared to造句)

compare with造句(用compared with和compared to造句)

“compare with造句”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看compare with造句(用compared with和compared to造句)!

2026年10月10日 23:30

xshell软件(Xshell怎么更改字体大小)

xshell软件(Xshell怎么更改字体大小)

各位老铁们好,相信很多人对xshell软件都不是特别的了解,因此呢,今天就来为大家分享下关于xshell软件以及Xshell怎么更改字体大小的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月10日 22:50

tensorflow与keras对应版本(为什么tensorflow2.8没有keras)

tensorflow与keras对应版本(为什么tensorflow2.8没有keras)

各位老铁们好,相信很多人对tensorflow与keras对应版本都不是特别的了解,因此呢,今天就来为大家分享下关于tensorflow与keras对应版本以及为什么tensorflow2.8没有keras的问题知识,还望可以帮助大家,解决

2026年10月10日 22:10

个人网站首页界面(深圳社会保险服务个人网页主页)

个人网站首页界面(深圳社会保险服务个人网页主页)

“个人网站首页界面”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看个人网站首页界面(深圳社会保险服务个人网页主页)!

2026年10月10日 22:00

maven仓库jar网站(如何在maven仓库中添加jar包)

maven仓库jar网站(如何在maven仓库中添加jar包)

这篇文章给大家聊聊关于maven仓库jar网站,以及如何在maven仓库中添加jar包对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月10日 19:50

最近更新

热门文章

by网站域名444(444ppp现在是什么域名)
2026-08-19 20:20:31 浏览:13
韩国大片视频mv(韩国20个感人mv)
2026-07-11 13:10:02 浏览:12
标签列表