使用GCC调试标志(编译阶段/链接阶段)

时间:2016-10-18 02:16:45

标签: c++ gcc g++ debug-symbols compiler-options

我有一个这个Makefile

application=<somebinaryname>
CXXFLAGS=-g -std=c++14 -Wall -Werror -pedantic
LDFLAGS=-g

auto: $(application)

$(application): main.o aaa.o aab.o aba.o baa.o
        $(CXX) $(LDFLAGS) -o $@ $^

%.o: %.cpp
        $(CXX) $(CXXFLAGS) -c $< -o $@

# rest of Makefile not relevant to my question

有人可以告诉我 -g 选项是在编译阶段(使用CXXFLAGS)还是在链接阶段(使用LDFLAGS)进行的?我到处查找示例和文档,但它们都有非常简单的示例,例如(甚至是联机帮助页):

gcc -g -o binary source.cpp

我明白了,但它并没有告诉我太多。

更清楚了吗?

1 个答案:

答案 0 :(得分:0)

-g生成调试信息。使用-g选项编译C程序。这允许编译器收集调试信息。然后你可以使用gdb来调试二进制文件。

一些有用的链接

http://www.thegeekstuff.com/2010/03/debug-c-program-using-gdb/

https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html

GCC -g vs -g3 GDB Flag: What is the Difference?