初学者搭建C语言开发环境
C语言的编程与Java和Python有所差别。C语言的开发环境的搭建与其它也有所不同。本文主要是针对初学者提供一个C语言开发环境的搭建指南。
一、搭建环境前的一些概念理解
在正式搭建C语言的开发环境之前我们需要先理解几个概念:
首先C语言是一种高级编程语言,并不能直接被计算机执行。因此,执行C语言编写的程序文件需要将C语言编译成二进制的文件才能被执行。因此,C语言的开发环境需要有编译器的存在以支持源代码的编译。常见的C语言的编译器包括vc++、gcc等。它们的作用都是将高级的C语言源代码根据CPU和操作系统的类型编译成可以被当前CPU和操作系统能认识的二进制文件,进而被执行。
既然C语言的开发环境需要编译器的存在,那么第一步我们就是在电脑里面安装编译器。Windows系统的话可以选择VC++(Microsoft Visual C++),它可以单独安装,也被包含在Visual Studio开发工具中。Windows系统也可以使用gcc作为编译器,但是需要使用Cygwin、MinGW等软件提供gcc的编译能力。
不同操作系统下对C语言程序的编译是不同的。因此,与Java提供虚拟机方式以支持一套语言跨平台运行的情况不同。同样的C语言源代码,在不同环境下需要编译成不同的文件。因为C语言的编译需要利用操作系统提供的一些能力,而C语言的运行没有Java虚拟机这个东西,因此,需要根据不同的操作系统编写对应的内容(大多数情况大部分C语言代码都可以被正常编译,除了少部分需要根据操作系统和CPU来选择实现方法)。如果在Windows下开发C语言程序,建议选择VC++编译器。Cygwin提供的gcc编译虽然也可以保证你的程序在Windows下编译成功后运行,但是它也不能保证你的编译结果可以在Linux上运行,依然要去Linux环境下编译。既然如此,在Windows下选择Cygwin之类的编译工具也就没意义了。
除了编译器以外,大部分时候我们也会选择一个IDE来开发C语言。一般可以选择的包括Visual Studio、Clion、Eclipse或者是Visual Studio Code。Visual studio是微软提供的IDE,非常庞大,个人也有免费版本。Eclipse是免费的开源的,也比较臃肿。Clion是JetBrains全家桶的成员,虽然好用,但是收费。Visual Studio Code也是微软提供的一个开源的轻量级的编程工具,这几年非常受欢迎。在这里建议大家选择正版免费的,可以考虑VS Code。
C语言是一种低级别的程序编程语言,C++与C语言类似,可以理解是为C语言提供了额外的面向对象的能力的语言。值得注意的是,由于C++是C的超集,你可以在C++编译器上运行大多数C代码。然而,C++通常不能在普通的C编译器上运行。这意味着,如果你想的话,你可以在C++编译器上用C编码。从语法上讲,C++是C的一切,再加上(plus)更多。因此,大多数情况下,C语言的开发环境都是C/C++一体化的。在本文中搭建的环境对于开发C++来说也是OK的。
二、编译器的安装
本文主要描述在Windows环境下搭建C语言的开发环境,因此这里的编译器也是Windows环境下的。如前所述,Windows环境下可以使用Visual Studio带的VC++编译器,也可以使用Cygwin或者MinGW提供的gcc编译能力。这里我们选择Visual Studio。
首先,在这里下载VS:https://visualstudio.microsoft.com/zh-hans/vs/

VS社区版本(community)是一个免费的IDE,作为个人开发者使用这个就够了。当然,这也是很庞大的。
这里下载的是visual studio installer,也就是安装器,安装完毕打开后会看到如下界面:

这里应该可以看到 Visul Studio Community 2019(我安装了就看不到了),然后点击安装可以看到如下界面:

由于这里我们需要的是C语言的编译环境,因此选择“使用C++的桌面开发”即可。此外,右边的可选使用默认即可。
注意,这里左下角有个位置,表明VS的安装位置,可以选择你常用的路径。
选择安装完毕之后,测试一下安装是否成功即可。测试方式:打开如下的Developer Command Prompt for VS 2019,然后在弹出的界面输入cl
命令,可以看到如下输出即可:
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.3
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
D:\Program Files\Microsoft Visual Studio\2019\Community>cl
用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.29.30133 版
版权所有(C) Microsoft Corporation。保留所有权利。
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]


三、安装VS Code
这里我们选择VS Code作为C语言的开发工具,下载地址如下:
https://code.visualstudio.com/

选择stable版本即可,下载之后安装完毕,然后添加C/C++的开发支持插件。

经过上述步骤我们就完全准备好了C语言的开发环境了。
四、开始创建第一个C语言开发项目示例
创建一个C语言的项目需要经过如下步骤:
首先,通过上述Developer Command Prompt for VS 2019程序进入你希望创建项目的位置,按照如下命令创建项目文件:
cd f:/onedrive/programs/c
mkdir c_examples
cd c_examples
code .

上述命令的含义就是在f:/onedrive/programs/c位置下创建c_examples的文件夹,并使用vs code打开到这个目录。然后你就会看到如下界面:

打开VS Code之后,我们可以在目录栏看到这个c_examples的项目,接下来我们需要配置这个项目的编译和运行环境,让程序运行起来。
第一步是在目录下创建main.c文件,并输入如下的示例代码。这是我们第一个C语言的程序文件,同时也是告诉VS Code,我们接下来需要开发C语言的程序。
#include <stdio.h>
int main(void)
{
printf("Hello World");
return 0;
}

依次点击VS Code菜单栏的Terminal-Configure Tasks
,然后在弹出来的配置界面选择使用C/C++:cl.exe 生成活动文件
,VS Code会自动在项目目录下创建.vscode目录,并生成一个tasks.json的文件。这一步就是配置使用VS来编译C语言程序。这里的cl.exe就是前面安装的VS 2019的编译C语言程序的程序。


生成完这个配置之后就可以编译C语言代码了。
我们可以依次点击
Terminal-Run Task...
,然后在弹出来的界面选择C/C++:cl.exe 生成活动文件
之后VS Code就会使用cl.exe程序来编译刚才的main.c文件,结果就是产生了如下的一些新文件,包括main.obj、main.exe等。这里的main.exe就是可以被当前系统与CPU执行的程序。同时,我们也可以在VS Code下面的输出栏看到编译的过程和编译成功的提示。结果如下图所示:


接下来我们可以配置运行整个项目。依次点击VS Code的Run-Add Configure...
,在弹出的界面选择“C++(Windows)”(不要选择第一个GDB/LLDB),然后VS Code就会生成一个launch.json文件,用以配置如何运行这个项目。


上述步骤完成之后,就会显示launch.json的内容。内容如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "cl.exe - 生成和调试活动文件",
"type": "cppvsdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"console": "externalTerminal",
"preLaunchTask": "C/C++: cl.exe 生成活动文件"
}
]
}
注意,这里的program配置表示运行哪个命令作为项目的运行入口,这里我们需要改成上述的main.exe即可。如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "main.exe", // 注意这里变掉了哦!
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/path/to/gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
并且会弹出一个弹出框,有刚才我们的“Hello World”结果。这样就运行完成了。

五、其它注意问题
5.1、检测到 #include 错误。请更新 includePath。已为此翻译单元(F:\OneDrive\Programs\C\df_c_learning\main.c)禁用波形曲线。
如果在main.c的内容中输入的代码第一行出现如下提示的错误:
检测到 #include 错误。请更新 includePath。已为此翻译单元(F:\OneDrive\Programs\C\df_c_learning\main.c)禁用波形曲线。C/C++(1696)
无法打开 源 文件 "stdio.h"C/C++(1696)
这是因为编译环境的问题,我出现了这个问题是因为在安装Visual Studio Community 2019的时候选择桌面C++环境的时候可选部分裁剪掉了一部分内容,没想到这里面很多内容不能不安装,因此安装的时候选择默认的可选组件就行了。不要自作聪明剪裁。
5.2、There is no task provider registered for tasks of type “cppbuild”
如果你在编译程序的时候(Terminal-Run Task…)出现如下错误:
There is no task provider registered for tasks of type "cppbuild"

那么,这是因为使用VS编译C语言的程序没有和VS Code关联所致,需要打开Visual Studio Community 2019进入项目目录,然后使用code .命令启动即可。
3、launch.js区别 tasks.json的区别
tasks.json在VS Code中是用来配置编译或者运行某一个文件的配置。launch.json是运行整个项目的配置。
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
