我有以下makefile,我想用CLion编译项目,并能够使用内置的gdb调试器调试编译的二进制文件:
TARGET = mysh
SOURCES = front.c shell.c parser/ast.c $(ADDITIONAL_SOURCES)
HEADERS = parser/lexer.h parser/ast.h shell.h $(ADDITIONAL_HEADERS)
GENERATED_SOURCES = parser/parser.c parser/lex.yy.c
GENERATED_HEADERS = parser/parser.h parser/lex.yy.h
Meta_SOURCES = parser/parser.y parser/lexer.l parser/lemon.c parser/lempar.c
Meta = Makefile check.py README.rst
CflaGS = -Wall -Wextra -std=gnu99 -g3
LDflaGS =
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
LIBS = -lreadline
else
LIBS = -lreadline -lhistory
endif
CC = gcc
LEX = flex
lemon = parser/lemon
.PHONY: all tarball clean moreclean
all: $(TARGET)
tarball: shell.tar.gz
shell.tar.gz: $(SOURCES) $(HEADERS) $(Meta_SOURCES) $(Meta)
tar -czf $@ $^
check:
@./check.py
clean:
rm -f $(TARGET)
rm -f *.o *.out
rm -f parser/*.o parser/*.out
rm -f *.aux *.log *.ltx *~
rm -f *.tar.gz
moreclean: clean
rm -f $(GENERATED_SOURCES) $(GENERATED_HEADERS)
rm -f $(lemon)
$(TARGET): $(SOURCES:.c=.o) $(GENERATED_SOURCES:.c=.o)
$(CC) $(CflaGS) $(LDflaGS) -o $@ $^ $(LIBS)
$(SOURCES:.c=.o): $(HEADERS) $(GENERATED_HEADERS)
$(lemon): parser/lemon.c
$(CC) $(CflaGS) -o $@ $<
parser/parser.h: parser/parser.c
parser/parser.c: parser/parser.y $(lemon)
$(lemon) $<
parser/lex.yy.h parser/lex.yy.c: parser/lexer.l
$(LEX) --header-file=parser/lex.yy.h -o parser/lex.yy.c $<
但是我遇到了类似问题,例如使用gnu99和readline,并且在尝试使用Clion进行编译时会给出很多错误和警告。