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++的主要内容,如果未能解决你的问题,请参考以下文章

vscodevscode设置让鼠标滚动改变字体大小

Windows XP + Ubuntu 双系统 备份与还原

G010-OS-WIN-11-01 Windows 11 系统安装

Windows下6款实用软件(强烈推荐!)

G005-OS-LIN-UBUN-01 Ubuntu Desktop 22.04 安装

markdown atualizacao-do-virtualbox-no-ubuntu.md