GDB没有找到调试符号

时间:2013-11-28 08:34:12

标签: c++ debugging makefile gdb g++

我正在尝试编译一个包含两个源文件的程序: wildcardtrie.h,wildcardtrie.cpp 使用Makefile。但是,当我运行GDB进行调试时,我收到以下错误:

Reading symbols from /home/meric/Documents/Random/SectionLeading/wildcardtrie...(no    debugging symbols found)...done.

我尝试过许多不同的编译器标志,但都没有。困扰我的是我在其他程序中使用了几乎相同的Makefile,缺少符号从来就不是问题。我在下面包含了Makefile:

CC=g++  
CFLAGS = -g -ggdb g++ -O0 -Wall -Wfloat-equal -Wtype-limits -Wpointer-arith -Wlogical- op -fno-diagnostics-show-option 

LDFLAGS = -g -ggdb -std=c++0x 


programs = wildcardtrie


all : $(programs)

clean:
     rm -f $(programs) core *.o

.PHONY: clean all

我尝试在编译器和链接器标志中删除'-g'和'-ggdb',但似乎没有任何效果。当我调用'make'时,我在终端上得到以下输出:

g++    -c -o wildcardtrie.o wildcardtrie.cpp
g++  -g -ggdb -std=c++0x   wildcardtrie.o   -o wildcardtrie

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

  

g++ -c -o wildcardtrie.o wildcardtrie.cpp

这清楚地表明编译行中-g 不是(这正是导致问题的原因)。

要获得-g,请将其添加到CXXFLAGS(这是首选解决方案),或者只显式编写编译规则(而不是依赖于内置的make规则):

wildcardtrie.o: wildcardtrie.cpp
        $(CC) $(CFLAGS) -o wildcardtrie.o wildcardtrie.cpp