gpt4 book ai didi

c - 为什么在终端中直接使用 gcc 编译可以工作,而使用 make 文件则不行?

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

我正在尝试使用 make 编译 GTK+ 示例,但是当我运行它时,终端显示“make: *** 没有规则可以使目标‘all’。停止。”

但是,当我输入以下内容进行编译时,它编译成功。

gcc -g -Wall -o exampleapp main.c exampleapp.c exampleapp.h exampleappwin.c exampleappwin.h -export-dynamic `pkg-config --cflags --libs gtk+-3.0`

这是我在 make 文件中放入的内容:

NAME=exampleapp
CFLAGS=-g -Wall -o $(NAME)
GTKFLAGS=-export-dynamic `pkg-config --cflags --libs gtk+-3.0`
SRCS= \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h
CC=gcc

all: main

main: $(SRCS)
$(CC) $(CFLAGS) $(SRCS) $(GTKFLAGS)

clean:
/bin/rm -f $(NAME)

我的 make 文件有问题吗?如果是这样,我该如何纠正?

最佳答案

您的 Makefile 规则部分缺少一些选项卡。

它应该看起来像:

all: main

main: $(SRCS)
$(CC) $(CFLAGS) $(SRCS) $(GTKFLAGS)

clean:
/bin/rm -f $(NAME)

请注意,操作行必须使用文字制表符缩进,而不是空格。 (Stack Overflow 将制表符转换为四个空格 - 不要只是复制和粘贴!)

关于c - 为什么在终端中直接使用 gcc 编译可以工作,而使用 make 文件则不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42592246/

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