Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GDB未找到调试符号_C++_Debugging_Makefile_Gdb_G++ - Fatal编程技术网

C++ GDB未找到调试符号

C++ GDB未找到调试符号,c++,debugging,makefile,gdb,g++,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. 我尝试了许多不同的编译器标志,但都不起作用。让我困惑的是,我在其他程序中使用了几乎

我试图编译一个由两个源文件组成的程序: 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
任何帮助都将不胜感激

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

这清楚地表明
-g
不在编译行上(这正是问题的原因)

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


在构建C++程序时,<>代码> <代码> >使用<代码> CXX和 CXXFLASG变量。同时,具有<<代码> -g>代码>和<>代码> -gdb>代码>冗余。您需要将链接器改为 G++< />代码> <代码> LD= G++< /C>。当您运行<代码>在控制台中制作时,您会得到大量输出。在运行
make clean
之后,请在问题中包含该输出。我认为您确实需要阅读更多关于
make
的内容。
makeclean
中的
clean
调用makefile中的
clean
目标。
wildcardtrie.o: wildcardtrie.cpp
        $(CC) $(CFLAGS) -o wildcardtrie.o wildcardtrie.cpp