2020-02-11 18:04:31
起因:
VScode是轻量级的IDE,在自己的笔记本上跑都能很流畅,原来自己编译C的IDE还是Keil....... 必须更新换代,所以开始在VSCode上配置C/C++环境,目标:能在VSCode上编译C,生成exe文件、运行。
过程:
网上很多教程,找了半天,直接跳过教你官网下载编译器的那些,
推荐一个b站up主的视频,自己写好了自动的配置和运行文件,十分方便!:【一键】20秒配置VScodeC语言C++开发环境!
问题:
问题1:
配置好环境变量后:(tip1:在运行代码的时候仍要检查环境变量是不是正确的,tip2:改变环境变量后,重启电脑才能生效)
path: D:mingwin
INCLUDE: D:mingwinclude
先是遇到了只有.c文件,没有.exe文件:
分析过程和解决办法:在工程文件夹里确实没有看到.exe文件,说明文件夹可能没有权限写出编译后的exe文件;就把工程文件夹的目录换到D盘(原本在VSCode安装文件夹里),可以这样: D:mingwinclude,再次安装后就能产生exe文件。
注意不要!!!:
“调试显示preLaunchTask"g++"已终止退出代码为1,把launch.json里的prelaunchtask g++用双斜杠注释掉可解决”(参考b站一留言:)
问题2:能有exe文件了,但是不能正常编译,现象:改变.c文件里的打印内容,发现调试运行后仍然为原来的内容。
分析过程和解决办法:出现这样的现象也就是.c文件没有编译成功,没有产生新的exe文件,还在执行老的.exe文件,因此不显示新的打印内容,所以在编译器的配置上找问题,尝试换路径,检查编译器版本,检查编译器是否运行(命令行里输入gcc -v 查看编译器版本,能看到说明编译器安装好了),无果。
只有改配置文件了,三个json文件(附上三个配置文件:launch.json,tasks.json,.c_cpp_propertiesjson)
参考了简书上一个博客:Visual Studio Code 运行&&调试c语言,更改了up主的极速配置文件。
1 { 2 "version": "0.2.0", 3 "configurations": [ 4 { 5 "name": "(gdb) Launch", 6 "type": "cppdbg", 7 "request": "launch", 8 "targetArchitecture": "x86", 9 "program": "${fileDirname}/${fileBasenameNoExtension}.exe", 10 "miDebuggerPath": "D:/mingw/bin/gdb.exe", 11 "MIMode": "gdb", 12 "args": [], 13 "stopAtEntry": false, 14 "cwd": "${workspaceRoot}", 15 "environment": [], 16 "externalConsole": true, 17 "preLaunchTask": "gcc" 18 } 19 ] 20 }
1 { 2 "version": "2.0.0", 3 "command": "gcc", 4 "type": "shell", 5 "presentation": { 6 "echo": true, 7 "reveal": "always", 8 "focus": false, 9 "panel": "shared", 10 "showReuseMessage": true, 11 "clear": false 12 }, 13 "args": ["-Wall", "-g", "${file}", "-o", "${fileBasenameNoExtension}.exe"], 14 //"args": ["-g", "'${file}'", "-o", "'${fileDirname}/${fileBasenameNoExtension}.exe'"], 15 "problemMatcher": { 16 "owner": "cpp", 17 "fileLocation": ["relative", "${workspaceFolder}"], 18 "pattern": { 19 "regexp": "^(.*):(\d+):(\d+):\s+(warning|error):\s+(.*)$", 20 "file": 1, 21 "line": 2, 22 "column": 3, 23 "severity": 4, 24 "message": 5 25 } 26 } 27 }
1 { 2 "configurations": [ 3 { 4 "name": "Win32", 5 "includePath": [ 6 "${workspaceFolder}/**", 7 "D:/mingw/include/*" 8 ], 9 "defines": [ 10 "_DEBUG", 11 "UNICODE", 12 "_UNICODE" 13 ], 14 "compilerPath": "D:/mingw/bin/gcc.exe", 15 "cStandard": "c11", 16 "cppStandard": "c++17", 17 "intelliSenseMode": "gcc-x64" 18 } 19 ], 20 "version": 4 21 }
最后就可以编译、运行成功。