Tôi đang cố gắng biên dịch chương trình của mình bằng các biểu tượng gỡ lỗi để sử dụng trong gdb. Tôi đã thêm cờ -g vào makefile của tôi nhưng tôi vẫn nhận được "Đọc biểu tượng từ ... (không tìm thấy biểu tượng gỡ lỗi)" khi tôi tải chương trình trong gdb. Chuyện gì thế??Không có biểu tượng gỡ lỗi nào trong gdb ngay cả khi biên dịch bằng cờ -g
Dưới đây là một tước xuống ví dụ về makefile của tôi mà cần phải có các bit có liên quan:
CPP = g++
CFLAGS = -c -g -Wall
$(BIN): $(OBJ)
$(CPP) $(LDFLAGS) $(OBJ) -o $(BIN) $(LIBS)
<test.o>: <test.cpp>
$(CPP) $(CFLAGS) <test.cpp> -o <test.o>
Nếu bạn muốn xem toàn bộ điều bạn có thể đi đây thay vào đó, mặc dù tôi không nghĩ đó là cần thiết:
ghi chú khác .. tôi đang biên soạn với MinGW trên Windows và tôi có SFML và OpenGL như phụ thuộc.
Và không, cờ-s không được tìm thấy trong tệp makefile của tôi.
Bạn có thể xác nhận với 'make -n' rằng bạn đang thực sự nhận được cờ' -g' trên dòng biên dịch của mình không? – chrisaycock
F: \ rowdump \ rom \ ROMV> make -n g ++ -Wall src/obj/core.o src/obj/image.o src/obj/gnd.o src/obj/gat.o src/obj/world.o src/obj/rsw.o src/obj/camera.o src/obj/rsm.o src/obj/main.o -o romv -Wl, - cho phép-tự động nhập, -subsystem, windows -lsfml-main -lsfml-graphics -lsfml-window -lsfml-system -lopengl32 -lglu32 Nó không có ! Weird .. Và lá cờ -ansi và -pendant của tôi cũng biến mất. Chỉnh sửa: Xin lỗi vì tường văn bản. Không nhận ra nó sẽ trở thành như thế này. – delaccount992
đầu ra mà Kobie dán là cho mục tiêu mặc định, đó là để liên kết, và không có lá cờ -g ở đó. Tôi vừa xác nhận trên Ubuntu rằng cờ đó là không cần thiết trong quá trình liên kết chỉ trong thời gian biên dịch. Tôi nghĩ bạn nên thử "make -n test.o" để xem lệnh nào được sử dụng để biên dịch. – binW