gpt4 book ai didi

c - 我如何为此创建 Makefile

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

这是我的头文件

#include <stdio.h>
#include <stdlib.h>
#include "gd.h"
#include "gdfontmb.h"
#include "gdfontl.h"
#include "gdfontg.h"

当我运行这个程序时,我通常输入“gcc -o test test.o -lm -lpng -lgd”它仅适用于一个 .c 文件,但这仅用于测试。我想将其与我的项目中的其他 c 文件链接(实际上我对使用 gd.h 还很陌生)

这是我的 Makefile(但它不起作用!!)

ifeq ($(OSTYPE),WINDOWS)
EXECEXT =.exe
COMP =__MINGCC__
PLATFORM =mingw
else
EXECEXT =
COMP =__GCC__
PLATFORM =linux
endif

EXECUTABLES= test$(EXECEXT)

all : $(EXECUTABLES)

test.o : test.c
gcc -c test.c

test$(EXECEXT) : test.o
gcc -o test$(EXECEXT) test.o -lm -lpng -gd

clean :
-rm *.o
-rm $(EXECUTABLES)

使用此 Makefile,我收到了有关对 gd 库中的任何内容的 undefined reference 的所有错误。我做错了什么以及如何解决这个问题?

最佳答案

您自己的 cc 命令已经给出了答案。您需要 -lgd,而不是 -gd。

例如在开始处设置:

LIBS=-lm -lpng -lgd
CC=gcc

(后者也可以是完整的操作系统相关路径,然后 CC 应该是操作系统特定部分的一部分,并指定为完整路径)。

稍后将 gcc 行更改为

$(CC) -o test$(EXECEXT) test.o $(LIBS)

并且 test.o 的规则(通常)并不是真正需要的,因为它是从 .c 文件创建 .o 文件的默认方法。

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

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