文档章节

FW:win下轻量级的c语言开发环境配置:vsc + gcc

SamXIAO
 SamXIAO
发布于 01/08 08:55
字数 973
阅读 102
收藏 0

win下轻量级的c语言开发环境配置:vsc + gcc

 

说明

VSCode是个编辑器,默认不带编译和调试环境,需要自行安装编译器,调试可以用其插件完成。

编译套件选用的是TDM-GCC,方便易用。(Codeblocks、Dev-Cpp等默认带的都是这款)。安装时会自动添加路径到环境变量PATH。

下载

配置

  1. 打开powershell,输入gcc检测gcc是否安装成功;
  2. 打开VS Code,点扩展,把需要的插件和主题都安装了;
  3. 建好纯英文的工作目录(VS Code对中文支持较差),在VSCode的资源管理器中打开这个目录,按F5,会自动创建.vscode目录下的launch.json文件,编辑并保存:
{
    "version": "0.2.0",
    "configurations": [{
        "name": "C Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
        "type": "cppdbg", // 配置类型,这里只能为cppdbg
        "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
        "launchOptionType": "Local", // 调试器启动类型,这里只能为Local
        "targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
        "program": "${cwd}\\${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
        "miDebuggerPath": "gdb32.exe", // miDebugger的路径,注意这里要与MinGw的路径对应。64位系统用gdb64.exe
        "args": [""], // 程序调试时传递给程序的命令行参数,一般设为空即可
        "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true
        "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
        "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
        "preLaunchTask": "gcc"   // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
    }]
}
  1. 在.vscode目录下新建tasks.json文件:
{
    "version": "0.1.0",
    "command": "gcc",  // 编译C++用g++,用MinGW和clang的自行修改。
    "args": ["${file}", "-o", "${fileBasenameNoExtension}.exe", "-g3", "-Og", "-Wall", "-static-libgcc", "-std=c11", "-fexec-charset=GBK", "-finput-charset=UTF-8"],  // 编译命令参数,C++可用-std=c++14
    "showOutput": "always",
    "problemMatcher": {
        "owner": "c",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        } 
    }
}
  1. 在.vscode目录下新建settings.json文件:
// 将设置放入此文件中以覆盖默认值和用户设置。
{
    "files.defaultLanguage": "c",
    "code-runner.runInTerminal": false,
    "code-runner.executorMap": {
    "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -Wall -g3 -Og -static-libgcc -std=c11 && $dir$fileNameWithoutExt",
    "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -Wall -g3 -Og -static-libgcc -std=c++14 && $dir$fileNameWithoutExt"
    }
}
  1. 在.vscode目录下新建c_cpp_properties.json文件:
// 目录根据实际修改
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "C:/TDM-GCC-32/include",
                "C:/TDM-GCC-32/lib/gcc/mingw32/5.1.0/include"
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "",
                "path": [
                    "C:/TDM-GCC-32/include",
                    "C:/TDM-GCC-32/lib/gcc/mingw32/5.1.0/include"
                ]
            }
        }
    ],
    "clang_format": {
        "style": "file",
        "fallback-style": "LLVM",
        "sort-includes": false
    }
}

7.在当前目录下新建一个.c文件,在调试面板中测试啦,或直接按F5。

技巧

  • 因为VS需要为每一个文件夹做单独配置,所以建议把.vscode文件夹放到你常用的文件夹的顶层,这样就不用重复配置了。(里面一般有:launch.json,tasks.json,settings.json,c_cpp_properties.json 四个基本的文件用于支持编译输出)
  • Ctrl + = 或 -(退格键左边)可放大缩小,再把各窗口拉一拉,配合逼格的主题简直完美!
  • 虽然配置了环境变量,仍需要将其中includePath项的路径更改为安装的TDM-GCC的实际路径,这一项是让VSCode识别到C/C++的头文件,不然找不到的时候会报错。

参考文章:

http://dreamlikes.cn/archives/724

https://www.imooc.com/article/17336

本文转载自:https://www.cnblogs.com/NeroSong/p/7196989.html

SamXIAO
粉丝 3
博文 107
码字总数 31548
作品 0
成都
部门经理
私信 提问
加载中

评论(1)

SamXIAO
SamXIAO 博主
VSC1.30.1 + TDM-GCC5.1.0按此配置成功编译、DEBUG C代码。
=================
Version: 1.30.1 (system setup)
Commit: dea8705087adb1b5e5ae1d9123278e178656186a
Date: 2018-12-18T18:12:07.165Z
Electron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
OS: Windows_NT x64 10.0.14393

=================
"P:/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include/*",
"P:/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/backward/*",
"P:/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/*",
"P:/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/x86_64-w64-mingw32/32/bits/*",
"P:/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include/ssp/*"
c语言编程软件有哪些 Win7下用哪种C语言编译器

C语言是一门历史很长的编程语言,其编译器和开发工具也多种多样,其开发工具包括编译器,现举几个开发工具供大家选择,当然也要根据自己的操作系统来选择适合自己的开发工具 好多刚开始接触c...

mini92
2018/04/20
0
0
学习C语言C++编译器的选择

很多初学C语言的同学可能遇到的首要问题,就是选择编译器,用什么编程软件? 然而通过了解之后发现有那么多编程软件,什么VC6.0,Dev ,CodeBlocks,Cfree,gcc啥的,看的都让人麻烦,并且呢...

小辰带你看世界
2018/01/11
0
0
学习C语言C加加编译器的选择

很多初学C语言的同学可能遇到的首要问题,就是选择编译器,用什么编程软件? 然而通过了解之后发现有那么多编程软件,什么VS2013 2015, VC6.0,Dev ,CodeBlocks,Cfree,gcc啥的,看的都让...

小辰带你看世界
2018/01/10
0
1
如何在eclipse中配置进行C语言开发。

如何在eclipse中配置进行C语言开发。 博客分类: C语言 引言:windows下C的开发工具很多,比如CodeBlocks,Dev-C++,VC6等。CodeBlocks需要依赖编译器MinGW。 Dev-C++没有自动提示,使用起来不...

writeademo
2016/08/25
128
0
Eclipse C语言开发

请教个问题 ,近来我试着在Eclipse 上安装个 C语言开发环境, 写一个HelloWorld测试程序 但编译时总是出现如下问题,配置了下MinGW环境变量等,问题也没解决,请教有没遇到过类似问题的,如何...

OceanStack
2016/04/11
299
2

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(三)——方法引用

在一起来学Java8(一)——函数式编程中有一个简单的函数式编程的例子: import java.util.function.Consumer;class Person { public static void sayHello(String name) { S...

猿敲月下码
13分钟前
6
0
读书笔记:深入理解ES6(十一)

第十一章 Promise与异步编程   Promise可以实现其他语言中类似Future和Deferred一样的功能,是另一种异步编程的选择,它既可以像事件和回调函数一样指定稍后执行的代码,也可以明确指示代码...

张森ZS
36分钟前
11
0
面试官,Java8 JVM内存结构变了,永久代到元空间

在文章《JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试...

程序新视界
44分钟前
26
0
Elasticsearch 实战(一) - 简介

官腔 Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 基本等于没说,咱们慢慢看 1 概述 百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜...

JavaEdge
49分钟前
18
0
【jQuery基础学习】11 jQuery性能简单优化

本文转载于:专业的前端网站➦【jQuery基础学习】11 jQuery性能简单优化 关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的。如果这样不能直接找到,也可以用find方法继...

前端老手
58分钟前
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部