gpt4 book ai didi

c++ - GDB 找不到调试符号

转载 作者:太空宇宙 更新时间:2023-11-04 11:44:17 27 4
gpt4 key购买 nike

我正在尝试编译一个包含两个源文件的程序:通配符.h, 通配符.cpp使用生成文件。但是,当我运行 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,要么将其添加到 CXXFLAGS(这是首选解决方案),要么只显式编写编译规则(而不是依赖内置 -在制定规则中):

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

关于c++ - GDB 找不到调试符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20261160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com