Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.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++ 带有GCC的调试标志(编译阶段/链接阶段)_C++_Gcc_G++_Debug Symbols_Compiler Options - Fatal编程技术网

C++ 带有GCC的调试标志(编译阶段/链接阶段)

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

我有一个关于这个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生成调试信息。使用-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