gpt4 book ai didi

创建生成文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:37 26 4
gpt4 key购买 nike

我知道 Internet 上有无数关于 makefile 的资源,但我仍然不明白。目前我有 3 个 c 文件 PolyCalculatorMain.c PolyCalculator.c PolyCalculator.h 和 Polyfunctions.c

到目前为止我有

PolyCalculator: PolyCalculator.o PolyCalculatorMain.c
gcc -Wall -ggdb -o PolyCalculator PolyCalculatorMain.c PolyCalculator.o

PolyCalculator.o: PolyCalculator.c
gcc -Wall -ggdb -c PolyCalculator.c PolyCalculator.h

clean:
rm PolyCalculator *.o *~ *#

任何关于完成此文件的帮助或解释将不胜感激。注意我才刚刚开始,所以我不想要任何复杂的代码,因为我不会理解它

最佳答案

在编译命令中,您通常不会指定 .h 文件。当遇到#include 语句时,它们被预处理器(在编译器之前运行)包含在内。这是我唯一能看到的。

.h 文件确实在 Makefile 中显示为依赖项,因为对它们的更改可能需要重新编译使用它们的代码。

我会说基本规则是在依赖行上包含任何内容,如果它们发生更改,将导致需要重新编译。

PolyCalculator: PolyCalculator.o PolyFunctions.o PolyCalculatorMain.c
gcc -Wall -ggdb -o PolyCalculator PolyCalculatorMain.c PolyCalculator.o PolyFunctions.o

PolyCalculator.o: PolyCalculator.c PolyCalculator.h
gcc -Wall -ggdb -c PolyCalculator.c

PolyFunctions.o: PolyFunctions.c PolyFunctions.h
gcc -Wall -ggdb -c PolyFunctions.c

clean:
rm PolyCalculator *.o *~ *#

Makefile 允许您拥有可以重用的变量。例如,您可以让您的变量中的编译器选项:

options=-Wall -ggdb

然后将它们与括号和美元符号一起使用

gcc ${options}

你也可以将它们分解:

debug=-ggdb

warnings=-Wall

options=${warnings} ${debug}

您还可以将所有目标文件组合到一个变量中:

obj_files=PolyCalculator.o PolyFunctions.o 

PolyCalculator: ${obj_files} PolyCalculatorMain.c
gcc -Wall -ggdb -o PolyCalculator PolyCalculatorMain.c ${obj_files}

PolyCalculator.o: PolyCalculator.c PolyCalculator.h
gcc -Wall -ggdb -c PolyCalculator.c

PolyFunctions.o: PolyFunctions.c PolyFunctions.h
gcc -Wall -ggdb -c PolyFunctions.c

clean:
rm PolyCalculator *.o *~ *#

关于创建生成文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com