我正在尝试使用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)


请注意,操作行必须使用文字制表符而不是空格缩进。 (堆栈溢出会将标签页转换为四个空格-不仅仅是复制和粘贴!)

10-06 10:22