我正在尝试使用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)
请注意,操作行必须使用文字制表符而不是空格缩进。 (堆栈溢出会将标签页转换为四个空格-不仅仅是复制和粘贴!)