编写一个makefile,其中编译的目标文件位于不同的目录中,并具有不同的名称,可以按照以下步骤进行:
target1: src1/target1.c
gcc -o build/target1 src1/target1.c
target2: src2/target2.c
gcc -o build/target2 src2/target2.c
在上述示例中,我们使用gcc编译器将源文件编译为目标文件,并将目标文件放置在"build"目录下。
all: target1 target2
在上述示例中,我们将"target1"和"target2"作为依赖项,表示在编译"all"目标之前,需要先编译这两个目标文件。
clean:
rm -rf build/*
在上述示例中,我们使用"rm"命令删除"build"目录下的所有文件和子目录。
完整的makefile示例代码如下:
target1: src1/target1.c
gcc -o build/target1 src1/target1.c
target2: src2/target2.c
gcc -o build/target2 src2/target2.c
all: target1 target2
clean:
rm -rf build/*
编写完makefile后,可以在命令行中使用"make"命令执行makefile,例如:
make all
这将编译所有目标文件。如果只想编译特定的目标文件,可以使用目标名称作为参数,例如:
make target1
这将只编译"target1"目标文件。
请注意,上述示例中的路径和名称仅供参考,实际应根据项目的实际情况进行修改。此外,还可以根据需要添加其他编译选项和依赖项。
领取专属 10元无门槛券
手把手带您无忧上云