gpt4 book ai didi

c - 如何创建 makefile?

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

我需要为需要在 Linux 上运行的作业创建 makefile。我不知道如何编写 makefile。

项目结构如下:

逻辑.h

Max.h 包含使用 header 保护的逻辑,如下所示:

#ifndef _GUI
#include "Logic.h"
#endif

GUI.h,其中包括 max.hlogic.h,如下所示:

#ifndef _GUI
#define _GUI
#include "Logic.h"
#include "Minimax.h"
#endif

prog.h 其中包括 GUI.h (prog 是主文件 - 主要函数在那里)

所有头文件都有相应的 .c 文件,其中仅包含各自的头文件。

GUI.h 使用 SDL 1.2,因此它还包含以下内容

#include "SDL.h"
#include "SDL_video.h"

我知道必须将特殊标志插入到 makefile 中,以便 SDL 可以正常运行。

这是一个 makefile 示例,仅包含一个 SDL 文件,因此它具有 sdl 标志以及通知错误和警告所需的标志:

all: sdl_test

clean:
-rm sdl_test.o sdl_test

sdl_test: sdl_test.o
gcc -o sdl_test sdl_test.o -lm -std=c99 -pedantic-errors -g `sdl-config --libs`

sdl_test.o: sdl_test.c
gcc -std=c99 -pedantic-errors -c -Wall -g -lm sdl_test.c `sdl-config --cflags`

但我不知道如何为此文件(项目)结构创建 makefile,也不知道在哪里放置 SDL 标志 - 仅适用于具有 SDL 的文件,或者仅适用于具有 SDL 的文件并包含具有 SDL 的文件SDL 或所有文件。

最佳答案

这是一个简单的例子

OBJECTS = sdl_test.o # add more files just separated by spaces -> filename.o
LDFLAGS = -lm `sdl-config --libs`
CFLAGS = -Wall -Werror -pedantic -g3 -O0 # full debugging on
CC = gcc
TARGET = sdl_test

all:
$(CC) -o $(TARGET) $(OBJECTS) $(LDFLAGS)

clean:
@rm $(OBJECTS) $(TARGET)

%.o: %.c
$(CC) $(CFLAGS) -c $<

不要复制和粘贴,因为 Makfile 需要制表符进行缩进。

关于c - 如何创建 makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33048312/

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