gpt4 book ai didi

c - 如何为所有 3 个 C 文件创建 makefile?

转载 作者:行者123 更新时间:2023-11-30 14:45:26 25 4
gpt4 key购买 nike

使用 Makefile 的极端初学者。我查看了其他问题,但它们看起来都很复杂。我想使用 Makefile 编译所有 3 个 .c 文件。它们是 SwimMill.c、Fish.c 和 Pellets.c。

all: SwimMill Fish Pellets

SwimMill: SwimMill.c
gcc -o SwimMill SwimMill.c

Fish: Fish.c
gcc -o Fish Fish.c -lm

Pellets: Pellets.c
gcc -o Pellets Pellets.c

之后,我在命令行中输入什么来编译Makefile?是 make -f Makefile 吗?

最佳答案

这是我的 C 程序 Makefile 的格式:

## Variables

SRC = file1.c,
file2.c,
file3.c

OBJ = $(SRC:.c=.o)

CFLAGS = -g -W -Wall -Wextra -Werror

CPPFLAGS = -ImyIncludeFolder

NAME = my_program

## Functions

all: $(NAME)

$(NAME): $(OBJ)
$(CC) $(OBJ) -o $(NAME)

clean:
rm -r $(OBJ)

fclean: clean
rm $(NAME)

re: fclean all

它可能不是世界上最好的 Makefile - 我的意思是,绝对不是 -,但它可以完成工作。
我对任何建设性批评持开放态度!

它是如何工作的:

我不会告诉你变量如何工作来侮辱你的智力。
我只是解释隐含的规则和变量(据我所知)。

$(OBJ) 隐式规则创建 .o 文件。
$(CC) 隐式变量是 C 编译器(这里可能是 gcc)

CFLAGSCPPFLAGS 变量由编译器自动调用。

  • CFLAGS 包含编译器选项(调试级别、详细程度等...)
  • CPPFLAGS 代表 C 预处理器标志,定义链接文件(如 header )。

希望这可以帮助您理解和制作强大的 Makefile!

关于c - 如何为所有 3 个 C 文件创建 makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53061570/

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