欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【vscode】vscode在windows与ubuntu下编译调试C/C++

程序员文章站 2024-02-29 12:05:16
...

总体流程为:

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++,点击安装

【vscode】vscode在windows与ubuntu下编译调试C/C++

【vscode】vscode在windows与ubuntu下编译调试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/ 

选择好安装路径,其他默认即可

【vscode】vscode在windows与ubuntu下编译调试C/C++

打开MinGW安装管理器进行进一步配置

勾选mingw32-gcc,mingw32-gcc-g++,mingw32-gdb分别是c,c++,gdb调试工具,Class均为bin,默认勾选的不用理会。 

【vscode】vscode在windows与ubuntu下编译调试C/C++

【vscode】vscode在windows与ubuntu下编译调试C/C++

【vscode】vscode在windows与ubuntu下编译调试C/C++

右键Make for Installation进行标记,点击左上角Installation菜单下的Apply Changes应用修改。

安装完成后添加系统环境变量 D:\MinGW\bin,添加后需要重启电脑。

【vscode】vscode在windows与ubuntu下编译调试C/C++


4、vscode调试配置文件

新建一个文件夹,用vscode打开文件夹

新建文件,命名为test.cpp

键入代码:

【vscode】vscode在windows与ubuntu下编译调试C/C++

选择【调试】-【启动调试】,弹出选择环境,选择【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、运行输出结果

选择【调试】-【启动调试】
【vscode】vscode在windows与ubuntu下编译调试C/C++


问题: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