【发布时间】:2021-03-08 17:58:36
【问题描述】:
我无法在 gdb 中调试我的应用程序,因为未加载符号表,我正在通过我的程序向后工作以确定导致这种情况发生的原因。提到的第一个建议是在编译时包含 -g 标志,我在我的 makefile 的 CFLAGS 部分中设置了它,但它似乎没有应用于我的文件。
如果不编写一个用我的文件名硬编码的 makefile 以确保它工作,我将如何修改现有的文件以确保将 -g 标志应用于所有已编译的文件?
$ make
g++ -c -o main.o main.cpp
g++ -c -o scanner.o scanner.cpp
g++ -g -Wall -Wno-unused-variable -o scanner main.o scanner.o
我找到了这个 makefile 并插入了我的信息
CFLAGS = -g -Wall -Wno-unused-variable
OBJFILES = main.o scanner.o
TARGET = scanner
all: $(TARGET)
%.o: %.c
$(CC) $(CFLAGS) $< -c
$(TARGET): $(OBJFILES)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJFILES)
.PHONY: clean
clean:
rm -f $(OBJFILES) $(TARGET) *~
【问题讨论】: