Тип: Отладчик
мой отладчик: GNU gdb (GDB) 8.1
Опишите ошибку:
ОС и версия: Windows 10 x64 10.0.18363
Версия кода VS: 1.47.3
Версия расширения C / C ++: v0.30.0-insiders
Другие установленные вами расширения (и если проблема не исчезнет после их отключения): Bracket Pair Colorizer 2 Генератор проектов C / C ++ (я использую его для создания make-файла проекта) Code Runner Debug Visualizer
Четкое и краткое описание ошибки. Отладка может нормально видеть желтый директор, когда я отлаживаю свои проекты C (2 c файлов, 1 головной файл), по некоторым причинам мне нужно, чтобы мои файлы c изменились на файлы cpp и снова сделали и отладили , то я обнаружил, что директор исчез, а красная точка разрыва стала серой, я пытаюсь изменить свой компилятор с g cc на g ++, чтобы решить эту проблему, но это не работает.
Шаги для воспроизведения поведения:
1. переименуйте все файлы c как cpp файлы и измените команду компилятора в make-файле с g cc на g ++.
2. Нажмите Ctrl + F5 для отладки.
3.Термирал: '.
Executing task: powershell -c mingw32-make <
g++ -std=c++17 -Wall -Wextra -g -Iinclude -Llib src/tree.o src/petclub.o -o bin/main.exe
Terminal will be reused by tasks, press any key to close it....'
4. директор исчезает, а красная точка перерыва становится серой.
Структура моего проекта C ++:
D:.
│ Makefile
│
├─.vscode
│ launch.json
│ tasks.json
│
├─bin
│ main.exe
│
├─include
├─lib
└─src
petclub.cpp
petclub.o
tree.cpp
tree.h
tree.o
запуск. json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"linux": {
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"program": "${workspaceFolder}/bin/main"
},
"osx": {
"MIMode": "lldb",
"miDebuggerPath": "lldb-mi",
"program": "${workspaceFolder}/bin/main"
},
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "gdb.exe",
"program": "${workspaceFolder}/bin/main.exe"
},
"preLaunchTask": "build"
}
]
}
makefile
CC := g++
CFLAGS := -std=c++17 -Wall -Wextra -g
BIN := bin
SRC := src
INCLUDE := include
LIB := lib
LIBRARIES :=
ifeq ($(OS),Windows_NT)
EXECUTABLE := main.exe
SOURCEDIRS := $(SRC)
INCLUDEDIRS := $(INCLUDE)
LIBDIRS := $(LIB)
else
EXECUTABLE := main
SOURCEDIRS := $(shell find $(SRC) -type d)
INCLUDEDIRS := $(shell find $(INCLUDE) -type d)
LIBDIRS := $(shell find $(LIB) -type d)
endif
CINCLUDES := $(patsubst %,-I%, $(INCLUDEDIRS:%/=%))
CLIBS := $(patsubst %,-L%, $(LIBDIRS:%/=%))
SOURCES := $(wildcard $(patsubst %,%/*.cpp, $(SOURCEDIRS)))
OBJECTS := $(SOURCES:.cpp=.o)
all: $(BIN)/$(EXECUTABLE)
.PHONY: clean
clean:
-$(RM) $(BIN)/$(EXECUTABLE)
-$(RM) $(OBJECTS)
run: all
./$(BIN)/$(EXECUTABLE)
$(BIN)/$(EXECUTABLE): $(OBJECTS)
$(CC) $(CFLAGS) $(CINCLUDES) $(CLIBS) $^ -o $@ $(LIBRARIES)