gpt4 book ai didi

c - Makefile 在 C 中使用 Main 构建多个程序

转载 作者:行者123 更新时间:2023-11-30 18:34:38 24 4
gpt4 key购买 nike

我的目标是创建一个可以同时构建 9 个程序的 makefile。前任。程序1.c、程序2.c ... 程序9.c。

一旦我运行 make,我希望能够键入 ./ProgramN(N 是任何程序 1-9)来运行任何特定程序。

所有程序共享用于函数原型(prototype)和结构定义的相同头文件,称为programs.h。此外,这 9 个程序使用的所有函数都将位于一个名为programs.c 的文件中。

任何人都可以告诉我如何做到这一点吗?

最佳答案

您只需要一个包含 9 个目标的 make - 每个完全链接的可执行文件都有一个目标,每个目标都有两个组件 ProgramN.c 和programs.c,其中programs.c 和 ProgramN.c 各有一个依赖项programs.h。

类似于以下内容(您需要完成 ... 省略的部分 - 并测试构建环境和工具链的宏):

# Compiler, Linker Defines
CC = /usr/bin/gcc
CFLAGS = -Wall

.PHONY: all

# All targets rule
all : Program1 Program2 ... Program9

# Individual Program rules
Program1 : Program1.o programs.o
$(CC) -o $@ $^

Program2 : Program2.o programs.o
$(CC) -o $@ $^
...
Program9 : Program9.o programs.o
$(CC) -o $@ $^

# Source file rules
Program1.c : programs.h
Program2.c : programs.h
...
Program9.c : programs.h
programs.c : programs.h

# Compile rule, (.c to .o)
%.o: %.c
$(CC) -c $(CFLAGS) $*.c

Make 必须构建伪目标 all 才能为每个依赖项找到一条规则,每个依赖项都链接 ProgramN.o 和programs.o。这些.o文件不存在,所以mak找到了一个生成.o文件的规则,有一个将.c翻译成.o的通用规则,所以就使用了。

关于c - Makefile 在 C 中使用 Main 构建多个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51387854/

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