C++ 带有GCC的调试标志(编译阶段/链接阶段)
我有一个关于这个Makefile的文件C++ 带有GCC的调试标志(编译阶段/链接阶段),c++,gcc,g++,debug-symbols,compiler-options,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) $(CXX
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生成调试信息。使用-g选项编译您的C程序。这允许编译器收集调试信息。然后可以使用gdb调试二进制文件 一些有用的链接
-g生成调试信息。使用-g选项编译您的C程序。这允许编译器收集调试信息。然后可以使用gdb调试二进制文件 一些有用的链接
我道歉。我的问题可能不够清楚。您的链接重复了大约5000个不同文档中已经存在的信息。我知道-g生成未优化的调试二进制文件,所有符号名保持不变。我知道什么是调试,什么是调试文件,为什么使用它,如何使用它,并且已经使用了很多年。然而,我不确定的是“-g”或“-ggdb”应该在编译阶段(与“-c”一起)还是在链接阶段执行?同样,在我的特定Makefile示例中,它是否应该与CXXFLAGS或LDFLAGS一起使用,或者两者都与我的相同?我道歉。我的问题可能不够清楚。您的链接重复了大约5000个不同文档中已经存在的信息。我知道-g生成未优化的调试二进制文件,所有符号名保持不变。我知道什么是调试,什么是调试文件,为什么使用它,如何使用它,并且已经使用了很多年。然而,我不确定的是“-g”或“-ggdb”应该在编译阶段(与“-c”一起)还是在链接阶段执行?同样,在我的特定Makefile示例中,它应该与CXXFLAGS或LDFLAGS一起使用,还是与我的相同?可能重复的
gcc -g -o binary source.cpp