windows系统vs code用来做c/c++的IDE的实践笔记

引言

Visual Studio Code是一款好用的开源编辑器,想用来写c/c++,发现目前的中文资料里对这些方面要么版本较旧,要么没有较好的描述具体应该怎样做。

找到一些英文资源,写的很详细,先把链接贴上来

vs code 自家的文档,写的很详细,用mingw作为编译器, https://code.visualstudio.com/docs/languages/cpp ,但mingw已经许久没有更新了,目前的mingw-w64却仍在更新,使用时稍有不同,需要注意。

另外,这篇写的不错 https://github.com/LambdaSchool/CS-Wiki/wiki/C-and-Cpp-Debugging-in-VS-Code 。使用了cygwin作为编译器(cygwin其实就是包含了mingw-w64)

安装编译器

具体操作参考这里(这位作者写了一个系列,很详细的写了如何一步一步上手c/c++):https://github.com/LambdaSchool/CS-Wiki/wiki/Getting-Your-C-Compiler-Installed

上面的帖子提供了多种方法来在win系统安装c/c++编译器

我们选择cygwin来作为编译器,官网在此。按步骤安装,主要是gcc与g++,其他的附带组件也可以尝试。

目的就是在powershell中能够直接运行gcc与g++。

VS code设置

安装插件:C/C++ for Visual Studio Code

修改 c_cpp_properties.json 文件,添加include路径

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "${workspaceRoot}"
            ],
            "defines": [],
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "D:\\cygwin64\\lib\\gcc\\x86_64-pc-cygwin\.4.0\\include",
                    "${workspaceRoot}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            },
            "macFrameworkPath": [
                "/System/Library/Frameworks",
                "/Library/Frameworks"
            ]
        },
        {
            "name": "Linux",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "${workspaceRoot}"
            ],
            "defines": [],
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "${workspaceRoot}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        },
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include",
                "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/*",
                "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/tr1/",
                "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/tr2/",
                "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/bits/",
                "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/x86_64-pc-cygwin/"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/*",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/tr1/",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/tr2/",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/bits/",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/x86_64-pc-cygwin/"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }
    ],
    "version": 3
}

其中,最重要的部分就是添加路径:

                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/*",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/tr1/",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/tr2/",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/bits/",
                    "D:/cygwin64/lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++/x86_64-pc-cygwin/"

这一步做完,基本code已经能够进行c/c++的输入词联想。

编译及运行程序

使用vs code的默认编译是不行的,需要在查看菜单,调出终端,在终端运行gcc -Wall -Wextra -o foo foo.c ,当然,如果编写好了make文件,可以直接用make命令。

结语

本文的叙述难免有疏漏,如果想了解更详细的内容,建议去看英文原网页。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据