编写C语言代码的文本编辑器有很多,常见的有Linux上的Vim,Mac上的Xcode以及Windows上的Visual Studio。你可以选择自己熟悉的文本编辑器,为了在Linux、Mac和Windows上统一,我在这里会介绍如何安装Visual Studio Code。

通常,编写好C语言代码的文件后缀是.c,里面包含了人类可以阅读的C语言指令,为了将这些指令转化成机器指令(只有机器才能读懂的01指令),你还需要为不同的平台安装合适的编译器。为了在Linux、Mac和Windows上统一,我在这里会介绍如何安装gcc。

安装Visual Studio Code

Visual Studio Code是微软推出的一个跨平台代码编辑器,适用于Linux、Mac和Windows,它的下载地址在 这里 ,你可以根据自己使用的操作系统选择对应的版本。安装好打开之后的界面如下所示:

此时,你就可以使用Visual Studio Code,但是为了让源码编辑器能够提供调试C语言代码、C语言智能提示等等之类的功能,你还需要安装上图圈起来的插件C/C++。切换到插件管理器,在Search Extensions in Marketplace搜索框内搜索C/C++,找到该插件,点击install按钮安装插件。

安装编译器

使用Visual Studio Code编写好的C源码文件是无法在计算机上执行的,我们需要使用编译器,将C源代码文件转化成可执行性文件。

常用的C语言编译器有很多,其中最为开放的是gcc编译器(它的全称是GNU Compiler Collection),根据 官网 介绍,它是编译器套装,支持编译的编程语言有:C、C++、Objective-C、Fortran、Ada、Go和D。

接下来的3个小节将介绍如何在Linux、Mac OS和Windows上安装gcc。需要注意的是各自平台上均有自己的C语言编译器,gcc只是其中之一。

Linux

在Linux平台上,gcc都是默认安装的,你可以打开命令行,输入并执行指令gcc -v,如果看到类似以下的信息,那么说明gcc已经安装好了。

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

否则,你需要根据Linux的发行版本来安装gcc。Linux的发型版本(Linux distribution)有很多,常见的有CentOS、Ubuntu、REHL和Fedora等等,我们统一称呼为Linux平台,因为它们都是基于Linux Kernel衍生出来的,既有相同的部分,也有不同的功能。

在发行版本CentOS或REHL上,你可以输入并执行以下指令来安装gcc

yum group install "Development Tools"

在发型版本Ubuntu上,你可以输入并执行以下指令来安装gcc

apt install build-essential

如果你不是以root用户登陆Linux系统,那么安装指令前需要加一个sudo。为了确认gcc已成功安装,你可以再执行gcc -v指令来查看gcc的版本信息。

Mac OS

打开命令行,输入并执行指令gcc -v,如果看到类似以下的信息,那么说明gcc已经安装好了。

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

否则,需要根据以下步骤来安装gcc:

  • 在命令行里输入并执行以下指令来安装brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • 执行以下指令来确保brew能够被访问到:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
  • 执行以下指令来安装gcc:
brew install gcc

为了确认gcc已成功安装,你可以再执行gcc -v指令来查看gcc的版本信息。

Windows

以下步骤来源于 这里 ,如果你英文还不错,那么可以到那里去获得更完整的教程。

  • 这里 下载 msys2-x86_64-YYYYMMDD.exe(YYYYMMDD是指年月日,比如 msys2-x86_64-20230127.exe )
  • 运行前一步下载好的安装包msys2(系统要求是64位Windows 8.1及之后的版本)
  • 输入安装目录,点击Next,如下图所示:

  • 将Run MSYS2 now勾选,点击Finish按钮,如下图所示:

  • 此时一个具有UCRT64环境的命令行将会弹出来,如下图所示:

  • 输入以下指令来安装gcc
pacman -S mingw-w64-ucrt-x86_64-gcc
  • 安装成功之后,输入指令gcc -v,会得到如下信息:
gcc.exe (Rev1, Built by MSYS2 project) 12.2.0

使用Visual Studio Code

首先需要明白一点:Visual Studio Code和gcc是2个独立的软件,前者集成了源码编辑、调试工具、命令行程序等等(如下图所示),后者则专门用于编译,而命令行程序是可以调用gcc的。

在Visual Studio Code中使用gcc

为了方便编译和执行,你需要确保Visual Studio Code中的命令行程序能够调用到gcc,这样,编辑源码、编译源码和执行程序就能在同一个界面里完成。

当你在Linux或Maco OS上安装好gcc之后,可以直接在Visual Studio Code中的命令行工具使用gcc。而在Windows上,则需要将目录C:\msys64\mingw64\bin添加到Windows的系统环境变量中,然后重启Visual Studio Code。

在后续的学习过程中,一个完整的流程是打开Visual Studio Code,创建源码目录,在目录中新建一个后缀为c的源码文件(如上图C程序文件),编写C程序指令,在命令行工具区域执行gcc指令来编译源码文件。

比如,在Linux或Mac OS平台上,执行以下指令:

gcc hello_world.c -o hello_world

在Windows平台上,执行以下指令:

gcc hello_world.c -o hello_world.exe

最终都会输出一个可执行性文件hello_world,其中Windows平台非常特殊,因为该平台是根据文件后缀exe来判断该文件是否为一个可执行性文件。

在Visual Studio Code调试C语言程序

如果你安装了C\C++插件以及Visual Studio Code能够调用到gcc,那么你便可以通过Visual Studio Code来调试C语言程序。为Visual Studio Code配置gcc调试步骤如下图所示:

配置结束之后,程序将处于调试状态,并停在了步骤1打的断点处,如下图所示:

关于调试,你需要知道以下几点:

  1. 你可以在任何一行C语言指令打断点,断点的含义是:你期望在调试的时候程序会运行到断点处
  2. 当程序停在断点处,你便可以通过Watch区域来查看当前程序各个变量的值
  3. 你可以使用上图中的6个进入函数、跳出函数、从新调试、推出调试以及其它2个按钮来决定下一步的调试步骤

如果你在准备以上环境时遇到问题,欢迎在评论区留言!

该系列其它文章