vscodevscode在windows与ubuntu下编译调试C/C++
Posted BHY_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vscodevscode在windows与ubuntu下编译调试C/C++相关的知识,希望对你有一定的参考价值。
总体流程为:
1、vscode安装
2、插件安装
3、MinGW安装配置
4、vscode调试配置文件
5、运行输出结果
详细流程:
1、vscode安装
下载链接:https://code.visualstudio.com/Download
windows下,一路下一步完成安装。
ubuntu下,dpkg -i xxxxx.deb进行安装后,终端输入code即可打开vscode
2、插件安装
点击工具和语言,会自动弹出扩展商店,选择C/C++,点击安装
3、MinGW安装配置
windows下有两种情况,第一种是直接从官网下载MinGW,第二种是如果电脑上安装了QT自带了mingw,比如我安装的是qt-opensource-windows-x86-mingw530-5.7.0.exe,只需要添加环境变量(D:\\Qt\\Qt5.7.0\\Tools\\mingw530_32\\bin)即可,可以略去安装过程。
ubuntu下直接用gdb即可,可以跳过这一步。
如果从官网下载,流程如下:
下载链接:http://mingw.org/
选择好安装路径,其他默认即可
打开MinGW安装管理器进行进一步配置
勾选mingw32-gcc,mingw32-gcc-g++,mingw32-gdb分别是c,c++,gdb调试工具,Class均为bin,默认勾选的不用理会。
右键Make for Installation进行标记,点击左上角Installation菜单下的Apply Changes应用修改。
安装完成后添加系统环境变量 D:\\MinGW\\bin,添加后需要重启电脑。
4、vscode调试配置文件
新建一个文件夹,用vscode打开文件夹
新建文件,命名为test.cpp
键入代码:
选择【调试】-【启动调试】,弹出选择环境,选择【C++(GDB/LLDB)】
此时多了一个launch.json文件,用以下内容替换该文件内容(注意修改miDebuggerPath的值,同样的如果用qt提供的mingw,我这里修改为D:/Qt/Qt5.7.0/Tools/mingw530_32/bin/gdb.exe同样可以调试运行)
//launch.json
"version": "0.2.0",
"configurations": [
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"program": "$file.o",
"args": [],
"cwd": "$workspaceRoot",
"environment": [],
"externalConsole": true,
"preLaunchTask": "g++",
"linux":
"miDebuggerPath": "/usr/bin/gdb",
"MIMode": "gdb",
"setupCommands": [
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
]
,
"osx":
"MIMode": "lldb"
,
"windows":
"miDebuggerPath": "D:/Qt/Qt5.7.0/Tools/mingw530_32/bin/gdb.exe",
"MIMode": "gdb",
"setupCommands": [
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
]
]
选择【调试】-【启动调试】,弹出错误,找不到preLaunchTask"g++",选择配置任务,使用模版创建tasks.json文件,在弹出的选项中随便选择一个,生成tasks.json文件,用以下内容替换该文件内容
//tasks.json
"version": "0.1.0",
"command": "g++",
"args": [
"-g",
"$file",
"-o",
"$file.o"
],
"problemMatcher":
"owner": "cpp",
"fileLocation": [
"relative",
"$workspaceRoot"
],
"pattern":
"regexp": "^(.*):(\\\\d+):(\\\\d+):\\\\s+(warning|error):\\\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
5、运行输出结果 选择【调试】-【启动调试】
问题:file format not recognized; treating as linker script
原因:如果提示错误的路径里没有qt,重启一下vscode即可,如果提示的错误的路径里有qt,则是mingw冲突,在环境变量中去掉qt提供的mingw即可。另外删除cpp生成的exe文件,选择cpp然后调试。
还有一个问题是自己写了其他的头文件和cpp,然后在test.cpp中包含调用,发现自己写的其他的cpp也生成了exe,所以直接把这个cpp里函数的实现都加到了头文件中,删掉这个cpp,可以正常调用了。
参考:
http://blog.csdn.net/c_duoduo/article/details/51615381
http://blog.csdn.net/Wind4study/article/details/56278953
以上是关于vscodevscode在windows与ubuntu下编译调试C/C++的主要内容,如果未能解决你的问题,请参考以下文章
G010-OS-WIN-11-01 Windows 11 系统安装