From 09379a8cf36c2770334550068b20198396fd3dd6 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Fri, 11 Mar 2022 20:55:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E9=85=8D=E7=BC=96=E8=AF=91=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SoftwareDesign/.vscode/c_cpp_properties.json | 4 +- SoftwareDesign/.vscode/launch.json | 22 ++++------ SoftwareDesign/.vscode/settings.json | 35 +++++++++------- SoftwareDesign/.vscode/tasks.json | 44 +++++++++++++++----- 4 files changed, 63 insertions(+), 42 deletions(-) diff --git a/SoftwareDesign/.vscode/c_cpp_properties.json b/SoftwareDesign/.vscode/c_cpp_properties.json index 444992b..c4cb173 100644 --- a/SoftwareDesign/.vscode/c_cpp_properties.json +++ b/SoftwareDesign/.vscode/c_cpp_properties.json @@ -10,10 +10,10 @@ "UNICODE", "_UNICODE" ], - "compilerPath": "C:/Program Files/LLVM/bin/clang.exe", "cStandard": "c17", "cppStandard": "c++17", - "intelliSenseMode": "windows-clang-x64" + "intelliSenseMode": "windows-gcc-x64", + "compilerPath": "C://Project/LLVM/bin/gcc.exe" } ], "version": 4 diff --git a/SoftwareDesign/.vscode/launch.json b/SoftwareDesign/.vscode/launch.json index d8ab2f2..c9d7a3b 100644 --- a/SoftwareDesign/.vscode/launch.json +++ b/SoftwareDesign/.vscode/launch.json @@ -1,34 +1,26 @@ { - // 使用 IntelliSense 了解相关属性。 - // 悬停以查看现有属性的描述。 - // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { - "name": "clang++.exe - 生成和调试活动文件", + "name": "gdb", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], - "stopAtEntry": true, - "cwd": "C:/Program Files/LLVM/bin", + "stopAtEntry": true, // 设为true时程序将暂停在程序入口处,我一般设置为true + "cwd": "C:/Project/LLVM/bin",//自己的编译器路径,自行修改 "environment": [], - "externalConsole": true, + "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "MIMode": "gdb", - "miDebuggerPath": "C:\\Program Files\\LLVM\\bin\\gdb.exe", + "miDebuggerPath": "C:\\Project\\LLVM\\bin\\gdb.exe",//自己的gdb路径,自行修改 "setupCommands": [ { - "description": "为 gdb 启用整齐打印", + "description": "gdb", "text": "-enable-pretty-printing", "ignoreFailures": true - }, - { - "description": "将反汇编风格设置为 Intel", - "text": "-gdb-set disassembly-flavor intel", - "ignoreFailures": true } ], - "preLaunchTask": "Compile" + "preLaunchTask": "Compile"//可以随意更改,保证与tasks.json的label相同 } ] } \ No newline at end of file diff --git a/SoftwareDesign/.vscode/settings.json b/SoftwareDesign/.vscode/settings.json index bb94bbd..2291ef1 100644 --- a/SoftwareDesign/.vscode/settings.json +++ b/SoftwareDesign/.vscode/settings.json @@ -5,8 +5,12 @@ "code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入 "code-runner.executorMap": { - "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt", - "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw-g++ -std=c++17 && $dir$fileNameWithoutExt" + // "c": "cd $dir && gcc *.c -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe", + // "cpp": "cd $dir && g++ *.cpp -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe" + "c": "cd $dir && gcc *.c -fexec-charset=gb2312 -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe", + "cpp": "cd $dir && g++ *.cpp -fexec-charset=gb2312 -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe" + // "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt", + // "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw-g++ -std=c++17 && $dir$fileNameWithoutExt" }, // 设置code runner的命令行 "code-runner.saveFileBeforeRun": true, // run code前保存 "code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false @@ -14,18 +18,19 @@ "C_Cpp.clang_format_sortIncludes": true, // 格式化时调整include的顺序(按字母排序) "C_Cpp.intelliSenseEngine": "Default", // 可以为Default或Tag Parser,后者较老,功能较简单。具体差别参考cpptools扩展文档 - "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉 - "C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉 + // "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉 + // "C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉 - "clang.cflags": [ // 控制c语言静态检测的参数 - "--target=x86_64-w64-mingw", - "-std=c11", - "-Wall" - ], - "clang.cxxflags": [ // 控制c++静态检测时的参数 - "--target=x86_64-w64-mingw", - "-std=c++17", - "-Wall" - ], - "clang.completion.enable":true // 效果效果比cpptools要好 + // "clang.cflags": [ // 控制c语言静态检测的参数 + // "--target=x86_64-w64-mingw", + // "-std=c11", + // "-Wall" + // ], + // "clang.cxxflags": [ // 控制c++静态检测时的参数 + // "--target=x86_64-w64-mingw", + // "-std=c++17", + // "-Wall" + // ], + // "clang.completion.enable": true, + "C_Cpp.default.compilerPath": "C:/Program Files/LLVM/bin/gcc.exe" // 效果效果比cpptools要好 } diff --git a/SoftwareDesign/.vscode/tasks.json b/SoftwareDesign/.vscode/tasks.json index 5ddc66e..5446936 100644 --- a/SoftwareDesign/.vscode/tasks.json +++ b/SoftwareDesign/.vscode/tasks.json @@ -1,20 +1,44 @@ // https://code.visualstudio.com/docs/editor/tasks { "version": "2.0.0", + // "tasks": [ + // { + // "label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应 + // "command": "clang++", // 要使用的编译器 + // "args": [ + // "${file}", + // "-o", // 指定输出文件名,不加该参数则默认输出a.exe + // "${fileDirname}/${fileBasenameNoExtension}.exe", + // "-g", // 生成和调试有关的信息 + // "-Wall", // 开启额外警告 + // "-static-libgcc", // 静态链接 + // "-fcolor-diagnostics", + // "--target=x86_64-w64-mingw", // 默认target为msvc,不加这一条就会找不到头文件 + // "-std=c++17" // C语言最新标准为c11,或根据自己的需要进行修改 + // ], // 编译命令参数 + // "type": "shell", + // "group": { + // "kind": "build", + // "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提 + // }, + // "presentation": { + // "echo": true, + // "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档 + // "focus": false, // 设为true后可以使执行task时焦点聚集在终端,但对编译c和c++来说,设为true没有意义 + // "panel": "shared" // 不同的文件的编译信息共享一个终端面板 + // } + // // "problemMatcher":"$gcc" // 如果你不使用clang,去掉前面的注释符,并在上一条之后加个逗号。照着我的教程做的不需要改(也可以把这行删去) + // } + // ] "tasks": [ { "label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应 - "command": "clang++", // 要使用的编译器 + "command": "g++", // 要使用的编译器 "args": [ - "${file}", - "-o", // 指定输出文件名,不加该参数则默认输出a.exe - "${fileDirname}/${fileBasenameNoExtension}.exe", - "-g", // 生成和调试有关的信息 - "-Wall", // 开启额外警告 - "-static-libgcc", // 静态链接 - "-fcolor-diagnostics", - "--target=x86_64-w64-mingw", // 默认target为msvc,不加这一条就会找不到头文件 - "-std=c++17" // C语言最新标准为c11,或根据自己的需要进行修改 + "${fileDirname}\\*.cpp",//编译所有文件,根据自己需要更改 + "-g",//一定要加这个参数,不然没法加断点 + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" ], // 编译命令参数 "type": "shell", "group": {