首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何编写一个makefile,其中编译的目标文件位于不同的目录中,并具有不同的名称?

编写一个makefile,其中编译的目标文件位于不同的目录中,并具有不同的名称,可以按照以下步骤进行:

  1. 创建一个名为"makefile"(或者"Makefile")的文本文件,确保它位于项目的根目录下。
  2. 在makefile中定义目标文件的路径和名称。假设我们有两个目标文件,分别位于"src1"和"src2"目录下,分别命名为"target1"和"target2",可以按照以下方式定义:
代码语言:txt
复制
target1: src1/target1.c
    gcc -o build/target1 src1/target1.c

target2: src2/target2.c
    gcc -o build/target2 src2/target2.c

在上述示例中,我们使用gcc编译器将源文件编译为目标文件,并将目标文件放置在"build"目录下。

  1. 定义一个"all"目标,用于编译所有目标文件。可以按照以下方式定义:
代码语言:txt
复制
all: target1 target2

在上述示例中,我们将"target1"和"target2"作为依赖项,表示在编译"all"目标之前,需要先编译这两个目标文件。

  1. 定义一个"clean"目标,用于清理生成的目标文件和中间文件。可以按照以下方式定义:
代码语言:txt
复制
clean:
    rm -rf build/*

在上述示例中,我们使用"rm"命令删除"build"目录下的所有文件和子目录。

完整的makefile示例代码如下:

代码语言:txt
复制
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,例如:

代码语言:txt
复制
make all

这将编译所有目标文件。如果只想编译特定的目标文件,可以使用目标名称作为参数,例如:

代码语言:txt
复制
make target1

这将只编译"target1"目标文件。

请注意,上述示例中的路径和名称仅供参考,实际应根据项目的实际情况进行修改。此外,还可以根据需要添加其他编译选项和依赖项。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券