2017-11-05 2 views
-1

Ich lerne Linux, und mein erster Schritt ist die Anpassung meiner project für den Betrieb unter Linux. Hier ist einfach Make-Datei (in pädagogischen Zwecken meistens), welche Datei generiert aus:g ++ erzeugt keine Debug-Symbole

#------------------------BUILD VARIABLES----------------------------- 
# Directories, containing headers 
INCLUDE_DIR = ../Include/ 
# Output directory which will contain output compiled file 
OUTPUT_DIR = ../Bin/Debug/ 

SOURCES = EngineManager.cpp Geometry.cpp Main.cpp Model.cpp \ 
     Shaders.cpp TGAImage.cpp 

HEADERS = EngineManager.h Geometry.h Line.h Model.h Shaders.h \ 
     TGAImage.h Triangle.h 

#------------------------BUILD_RULES--------------------------------- 
TinyRenderBuilding : $(addprefix $(INCLUDE_DIR), $(HEADERS)) $(SOURCES) 
    mkdir -p $(OUTPUT_DIR) 
    g++ -std=c++14 -o $(OUTPUT_DIR)TinyRender.out -g -I$(INCLUDE_DIR) $(SOURCES) 

ich nicht verstehen kann, warum g++ nicht Debug-Symbole erzeugen? -g Option wird angezeigt

+0

Versuchen -ggdb Flag anstelle von nur -g. –

+0

Wie sind Sie sicher, dass Debug-Informationen im Format [DWARF] (https://en.wikipedia.org/wiki/DWARF) nicht generiert werden? Was ist deine [GCC] (http://gcc.gnu.org/) Version? Versuchen Sie es mit 'g ++ -v'. ** Bearbeiten Sie Ihre Frage **, um sie zu verbessern. –

+0

Haben Sie alle Objektdateien vor dem Build entfernt (versuchen Sie 'make clean')? –

Antwort

2

Nach Ihrem Makefile g++ sollte Debug-Symbole (-g Option wird vorgestellt). Um dies zu bestätigen können Sie file auf resultierende binäre laufen:

$ file a.out 
a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=9fe588c18099ef418daf288931bb033cc287922e, with debug_info, not stripped 

(Hinweis with debug_info String in Ausgabe)

2

Ich bin mir nicht ganz sicher, aber Sie können -g oder -ggdb versuchen. Sie können etwas über diese Forschung tun. Wir haben diese Parameter verwendet, um das C-Programm mit dem Tool gdb zu debuggen.