gpt4 book ai didi

c - 包含不同目录中文件的 Makefile

转载 作者:行者123 更新时间:2023-12-04 00:36:05 25 4
gpt4 key购买 nike

我是在 Ubuntu 中使用 gcc 的新手,所以我正在尝试创建一个 Makefile。我的项目文件夹在此文件夹内称为“项目”我还有三个文件夹:sources、headers、objects(空)。

我的 Makefile 应该能够在“objects”文件夹中创建目标文件。但是,我希望我的可执行文件和 Makefile 位于主文件夹:“project”中,然后我可以清理可执行文件和目标文件。如何编译包含这些文件夹的程序?这是我的 Makefile 作为示例。文件夹“项目”在我的主文件夹中。

 CFLAGS= -ansi -pedantic -Wall -c
all: project

project: ./objects/main.o ./objects/factorial.o ./objects/gcd.o ./objects/greatestNumber.o ./objects/primeNumbers.o
gcc -o project ./objects/main.o ./objects/factorial.o ./objects/gcd.o ./objects/greatestNumber.o ./objects/primeNumbers.o

main.o: ./sources/main.c
gcc $(CFLAGS) ./sources/main.c

factorial.o: ./sources/factorial.c ./headers/factorial.h
gcc $(CFLAGS) ./sources/factorial.c

gcd.o: ./sources/gcd.c ./headers/gcd.h
gcc $(CFLAGS) ./sources/gcd.c

greatestNumber.o: ./sources/greatestNumber.c ./headers/greatestNumber.h
gcc $(CFLAGS) ./sources/greatestNumber.c

primeNumbers.o: ./sources/primeNumbers.c ./headers/primeNumbers.h
gcc $(CFLAGS) ./sources/primeNumbers.c

clean:
rm -f ./objects/main.o ./objects/factorial.o ./objects/gcd.o ./objects/greatestNumber.o ./objects/primeNumbers.o project

谢谢

最佳答案

您应该像处理所有其他文件名一样提供对象目标的路径。

./objects/main.o: ./sources/main.c
gcc $(CFLAGS) ./sources/main.c

...等等。

关于c - 包含不同目录中文件的 Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287904/

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