C/C++ 开发环境
C/C++ 编译器是什么
Section titled “C/C++ 编译器是什么”是把 C/C++编译为机器能够直接执行的可执行程序的工具。
如果对编译器本身感兴趣,参考维基百科
这里这介绍课本上经典的编译过程 (也是考试考查的)
- 预处理 (预处理器)
- 编译 (编译器)
- 汇编 (汇编器)
- 链接 (链接器)
实际上在我们口中所谓的 编译器 就是把上面四个整合在一起的完整编译器。
常见的 C/C++ 编译器
Section titled “常见的 C/C++ 编译器”- GCC (GNU Compiler Collection)
- Clang (LLVM)
- MSVC (Microsoft Visual C++)
- Tiny C Compiler (TCC)
- PCC (Portable C Compiler)
- Intel C Compiler (ICC)
GCC 、Clang 是我们在 Linux 和 macOS 上最常用的编译器。MSVC 是 Windows 上最常用的编译器,当然 GCC 和 Clang 也可以在 Windows 上使用。
编译器不是什么
Section titled “编译器不是什么”大多数初学者会认为VSCode、VS 2022、CLion、Dev C++等 IDE 就是编译器,实际上他们只是普通的文本编辑器而已,这一点在VSCode中尤为明显,其中给你代码补全功能的也不是编译器,而是 LSP 服务器例如 clangd、ccls 等等。
VS 2022、Dev C++ 等专门为 C/C++ 设计的 IDE 集成了 C/C++ 编译器,所以你可以开箱即用,但是他们本质上还是文本编辑器。而VSCode则需要你手动安装编译器。
编译器 + IDE = 开发环境
在不同系统上安装 C 语言编译器
Section titled “在不同系统上安装 C 语言编译器”将会按照安装难度从易到难介绍,⚡ 越多表示安装难度越大。
体验指数 和 推荐指数 将会在下文给出,⭐ 越多表示体验越好。
Windows
Section titled “Windows”Dev C++ 5.1
Section titled “Dev C++ 5.1”安装难度: 0 (我奶奶都会装)
体验指数:⭐
推荐指数:⭐⭐
这是一个非常老牌的 C/C++ IDE,开箱即用,没有任何复杂的插件和操作,集成了 GCC 编译器,也是蓝桥杯 转专业考试 等指定的 IDE + 编译器 环境。
这里推荐Dev C++ 5.1 版本, 推荐教程为
知乎 - Dev C++下载安装使用教程
VS studio 2022
Section titled “VS studio 2022”安装难度:⚡⚡
体验指数:⭐⭐⭐
推荐指数:⭐⭐⭐
VS studio 2022 是微软官方的 IDE,集成了 MSVC 编译器,功能强大,不仅仅 C/C++ 还可以胜任 C#、Python、Fluent UI .NET … 等等几乎任何和 Windows 相关的开发。也是你去 B 站搜各种 C/C++ 教程看到的最多的 IDE。
对多线程调试的支持非常完整,市面上在C/C++多线程调试方面没有任何 IDE 能够超越 VS studio。
只有社区版是免费的,但是个人使用足够了。
推荐教程为 C 语言/C++初学——Visual Studio 环境的安装配置与使用
VSCode + GCC / Clang / MSVC
Section titled “VSCode + GCC / Clang / MSVC”安装难度: ⚡⚡⚡⚡
体验指数: ⭐⭐⭐⭐
推荐指数: ⭐⭐⭐⭐⭐
VSCode 是微软官方的轻量级 IDE,通过安装插件可以支持几乎所有的编程语言。C/C++ 方面推荐安装 C/C++ LSP插件(微软官方)或者 clangd 插件(第三方)。但是 VSCode 本身并不集成任何编译器,所以你需要手动安装 GCC / Clang / MSVC 编译器。
这里推荐的教程为VS Code 配置 C/C++ 编程运行环境
VSCode + WSL + GCC / Clang
Section titled “VSCode + WSL + GCC / Clang”安装难度: ⚡⚡⚡⚡⚡
体验指数: ⭐⭐⭐⭐⭐⭐
推荐指数: ⭐⭐⭐
WSL 是微软官方的 Linux 子系统,可以让你在 Windows 上运行 Linux 系统。通过 WSL2 你可以在 Windows 上使用 Linux 的各种工具和软件,甚至包括各种图形化界面,使用体验简直就和直接使用原生 Linux 几乎没有区别。
这个方案 ,既可以让你享受VScode 强大插件生态,还可以让你和Windows 文件管理和工作流无缝衔接,又可以让你使用 Linux 上的各种工具和软件,简直是 C/C++ 开发的终极方案, 效率神器。
本方案安装过程较为复杂,对于WSL的安装,或许会单独开一个篇章来介绍。TODO
这里先推荐几个个教程:
如何在WSL 上安装 GCC / Clang 请参考下面的 Linux 章节。
本章节仍然在维护中 TODO
本章节的难度是默认你已经安装并了解过简单的
Linux命令
我需要在 Linux 上开发 C/C++ 吗?
Section titled “我需要在 Linux 上开发 C/C++ 吗?”下面几种情况我推荐你在 Linux 上开发 C/C++ 代码:
Linux用户- 需要开发具有较多第三方库的
C/C++复杂项目 - 能够自己探索和解决问题
下面几种情况我不推荐你在 Linux 上开发:
- 希望 开箱即用
C/C++环境,但却没有任何现成的Linux系统 - 只是希望学习
C/C++应试语法 - 没有任何使用命令行操控系统的经验,并且不希望学习
Ubuntu / Debian
Section titled “Ubuntu / Debian”TODO
VScode + GCC / Clang
Section titled “VScode + GCC / Clang”通过 APT 安装 GCC / Clang
Section titled “通过 APT 安装 GCC / Clang”sudo apt updatesudo apt install build-essential # 安装GCC和G++sudo apt install clang lldb lld llvm # 安装Clang + LLVM如何安装 VSCode
Section titled “如何安装 VSCode”这里推荐教程VSCode Linux 安装
TODO
为什么需要编译安装
Section titled “为什么需要编译安装”- 你可以自行控制你需要的组件,避免编译不要的东西
- 有些特性必须要从源码编译才有,很少存在预编译的二进制包,例如自身注入了
ASAN的Clang,或者说中文支持的GCC - 在本地编译,可以针对你的
CPU指令集进行优化,获得更好的性能参考 ,当然这是在你正确编译的情况下。
推荐教程: