【vscode】vscode在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

猜你喜欢

转载自blog.csdn.net/qq_15947787/article/details/78727223