IDE 选择与配置教程

IDE 选择与配置教程


目录

    1. 总览
    1. IDE 是啥:基础概念
    1. 选型:为什么是这三款
    1. 公共前置:MinGW-w64 安装
    1. CLion 篇
    1. VSCode 篇
    1. Dev-C++ 篇
    1. 收尾与统一规范
  • 附录 A:竞赛代码模板
  • 附录 B:常见问题索引

0. 总览

工具 定位 适合谁 花钱吗
VSCode 日常主力 所有人(免费、轻量、插件多) 免费
CLion 体验天花板 机器配置好、能搞到学生认证的人 学生免费,否则付费
Dev-C++ 机房保底 所有人(机房/蓝桥杯只有它) 免费

总策略一句话:平时写题用 VSCode(或 CLion),机房可能只有 Dev-C++ 。三款最终都要会,因为比赛现场没有选择权,但是新手只要掌握一个就可以了。


1. IDE 是啥

1.1 四个概念别搞混

  • 编辑器:写代码的记事本加强版。只负责"打字",不负责"运行"。比如记事本、Vim、VSCode 本身。
  • 编译器:把人类写的 C++ 代码翻译成电脑能执行的机器码的程序。C++ 用的编译器叫 g++(GNU 的)或 cl(微软的)。
  • 调试器:让程序"暂停"给你检查的工具。可以断点、单步、看变量值,找 bug 用的。
  • IDE(集成开发环境):编辑器 + 编译器 + 调试器 + 一堆便利功能打包在一起。Dev-C++、CLion 是 IDE;VSCode 严格说是"编辑器",但装上插件后能干 IDE 的活。

1.2 一段代码是怎么变成程序的

写代码(.cpp) --预处理--> 翻译成汇编 --汇编--> 机器码(.o) --链接--> 可执行文件(.exe)

萌新不需要懂细节,只需要知道:你写的是源码,电脑跑的是 exe,中间的翻译工作由编译器完成。

1.3 三个贯穿全文的关键概念(必须搞懂)

  1. MinGW 是啥:g++ 本来是 Linux 上的编译器。MinGW 是"Windows 版的 g++",让 Windows 也能编译 C++。装编译器 = 装 MinGW。
  2. 环境变量 PATH 是啥:告诉系统"去哪找可执行文件"。配好 PATH 后,在任意目录打开终端敲 g++ 都能找到它。配不好 = 报"不是内部或外部命令"。
  3. 编码(UTF-8 vs GBK)是啥:电脑存中文有两种主流编码。Windows 中文系统控制台默认 GBK,而现代编辑器默认 UTF-8。两边不一致 = 中文输出乱码。后面每一章都会遇到这个问题,第 4、5 章会给解决方案。

2. 选哪个IDE

只推荐三个,剩下不推荐原因后面有说。

VSCode

  • 优点:插件丰富(代码提示、调试,抓题、美化),写题舒适
  • 缺点:各种功能都要自行配置,流程较为复杂,下方教程会有基础和进阶些的配置教学

CLion

  • 优点:开箱即用,功能完善,调试代码体验最佳
  • 缺点:插件较少,无法满足定制化需求
  • 如果想获得较好体验但不想折腾配置就选它

Dev-C++

  • 优点:开箱即用,随处可见
  • 缺点:除了优点全是(代码提示弱、调试器老、默认编译器版本老)
  • 可以不用,但得会用,学校机房以及某些比赛(点名蓝桥杯)只要它

顺带说下为什么不推荐别的

  • Visual Studio:区别于VSCode,这是工程开发用的,不适合学算法打竞赛用,而且安装先得下载10G+。
  • Code::Blocks:和 Dev-C++ 同代的老家伙,定位重复,且远不如Dev常见。
  • vim/Emacs:除非你会用或者你想当嘉豪,新生

3. MinGW-w64 安装

如果你选择使用VSCode,Dev-C++必须完成这一步,CLion可以选择跳过,但是建议顺手下了后面配置方便。

3.1 下载

  • 下载地址(整合包,要啥有啥):https://github.com/niXman/mingw-builds-binaries/releases
  • (上方蓝色链接鼠标左键单击或按住ctrl后左键单击可以直接打开)
  • 选哪个文件:找最新的 x86_64 开头的 release 版本,格式类似:
    x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1.7z
  • 命名含义(认准这三个词):
    • x86_64:64 位(现在电脑基本都是)
    • 13.2.0:版本号随意,下最新的就行(不是最新的也行)
    • posix:线程模型,支持 std::thread(win32 模型不支持,别选)
    • seh:异常处理模型,64 位下最稳
  • 或者点击右边直接下载:点这点这
  • 如果你打不开链接,那是正常的,请尝试在你下载这篇教程的群文件里寻找对应压缩包文件,或者找东皮要

image-20260816222254051

3.2 解压安装

插一嘴,建议把显示文件扩展名打开

image-20260816223033072

  1. Win11可以直接双击打开压缩包或者用解压软件打开压缩包,把mingw64文件夹解压放到C盘根目录下(C:\mingw64),或者你也可以放到D盘根目录也行,==不要放到下载文件夹或者桌面上==

    image-20260816223932086

  2. 解压后确认里面有 bin 文件夹,C:\mingw64\bin 下能看到 g++.exe

image-20260816224100171

3.3 配置 PATH

  1. Win 键,搜索"环境变量",打开"编辑系统环境变量"

    image-20260816224310139

  2. 点右下角"环境变量(N)..."

  3. 在"系统变量"里找到 Path,双击 → 点"新建" → 填入 C:\mingw64\bin

  4. 一路"确定"关掉所有窗口

image-20260816224805613

3.4 验证

  1. Win + R,输入 cmd 回车,打开命令行
  2. 输入 g++ --version,回车
  3. 看到类似 g++ (x86_64-posix-seh-rev1, Built by MinGW-Builds project) 16.2.0 的输出 = 成功

image-20260816225015040

🔧 如果提示"不是内部或外部命令":多半是 PATH 没配好,或者配完没重开 cmd(要重开窗口才生效)。


4. CLion 篇

4.1 下载安装

  1. 官网下载:https://www.jetbrains.com/clion/download/ (Windows 版),或者群里找安装包。
  2. 安装包1.6GB较大,等待下载。实测至少校园网能直接下载(速度能到10MB/s)。
  3. 双击安装,安装时勾选"添加到 PATH"和"创建桌面快捷方式",其他随意,其余常规软件安装流程不多赘述。
  4. 安装完成后打开应用,语言与地区默认直接下一步→同意协议→数据共享随你→允许访问互联网,随后来到主菜单image-20260816230522224
  5. 选择新建项目,可以不用修改配置直接创建,当然你可以给项目文件夹换个位置image-20260817004953578
  6. 创建完后新打开的窗口会弹出来项目向导,如果前面按照流程下载好了MinGW这里应该能直接检测到,直接点确认就行,否则点击旁边下载...按钮现场下载就行。image-20260816231759792
  7. 打开左侧的main.cpp(默认已经打开了),点击 顶部绿色箭头按钮运行,看到底部弹出运行窗口成功打印输出。到这里,你就可以开始写代码了,但是还得做些设置让你舒服地写代码。image-20260816232200596

你大概已经注意到了右下角弹出的提示。

⚠️ CLion 没有免费社区版!只有 30 天试用。免费长期使用要靠下面的学生认证。

image-20260816230810180

4.2 学生认证激活

  1. 点击左下角的试用按钮,打开激活窗口。
  2. 选择学习和爱好可免费使用。image-20260816232400779
  3. 选择学习和自我教育,点击注册会弹出浏览器窗口。image-20260816232538011
  4. 选择你有的账户的平台或使用邮箱注册登录(骗你的到最后都得绑定邮箱,QQ邮箱总有吧,Win QQ客户端左下角邮件图标能打开,填邮箱收验证码等步骤不说了)image-20260816232643350
  5. 注册登录后会给你跳到一个全是英文的界面,不管他,返回到CLion激活窗口,这次点击“登录以进行非商业使用”,再走一遍登录流程到显示“授权成功 您可以关闭此页面并返回 IDE”。
  6. 返回CLion同意协议后点“开始非商业使用”。至此,激活完成。image-20260816233426264

4.3 怎么"干掉" CMake 配置

为什么要干掉CMake:CLion 默认用 CMake 管理项目,对我们写题来说每道题目只需要一个.cpp文件就够了。

两个方案,推荐 A:

方案 A(推荐):直接删了CMakeLists.txt

  1. 看到左侧项目文件夹,左键单击选中CMakeLists.txt,del键删除或者右键删除,弹出窗口直接回车确认就是。

  2. 删完给你蹦出个错误警告,同时运行按钮也变成灰色无法运行了,怎么办。

  3. 鼠标点击 int mian() {一行,注意到这一行行号旁边有个一样的绿色运行按钮,点他,选运行。

  4. 在这一行右键,打开的菜单中也有“运行'main.cpp'”选项,点他。

  5. 然后就正常运行了,顶上的运行按钮也恢复了。

    image-20260816234355617

  6. 注意:这样子做后,以后添加新的cpp文件时,不要勾选添加到目标(就算你勾选了也没没配置文件添加)image-20260816234810283

  7. 新建的文件会弹出“此文件不属于任何项目目标”,写好代码后一样点mian()一行的运行箭头就能添加到运行配置里运行了,运行一次后警告也会消失。

方案 B:修改CMakeLists.txt

打开CMakeLists.txt,替换为以下内容:

cmake_minimum_required(VERSION 3.16)
project(contest)

# C++17 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 警告 + 中文输出不乱码(-fexec-charset=GBK 仅 Windows 需要)
add_compile_options(-Wall -Wextra -fexec-charset=GBK)
# 跑题请用右上角构建类型 Release(自带 -O2 优化),调试切回 Debug
# 想固定 -O2 的话取消下一行注释(代价:调试时变量可能被优化看不到)
# add_compile_options(-O2)

# 收集所有 .cpp;CONFIGURE_DEPENDS = 新增文件自动识别,不用手动重载
file(GLOB CPPS CONFIGURE_DEPENDS "*.cpp")

# 每个 .cpp 生成一个独立可执行文件
foreach(CPP ${CPPS})
    get_filename_component(EXE ${CPP} NAME_WE)
    add_executable(${EXE} ${CPP})
endforeach()

然后点击左下角Cmake图标,点击重新加载

image-20260817000438563

后续新增文件同方案A,不要勾选“添加到目标”,不小心勾选且创建文件了可以按ctrl+z撤回或者打开CMakeLists.txt重新贴一遍上面的配置。

新添加的文件如果没有出现在运行配置列表,同上点CMake图标重新加载一下就行。

注意有多个文件之后,点击运行按钮运行的是左侧运行列表当前显示的文件,注意核对与自己当前想运行的文件是否一致。image-20260817001025767

4.4 中文输出乱码解决

如果上一节你选择方案B的话就不用管这一步了,CMakeLists配置模板里已经顺带解决了这个问题。

实际上遇到输出中文的情况非常少见,目前只在极个别题目中见过。

原理:CLion 源码默认 UTF-8 保存,但 Windows 控制台默认 GBK 读,两边打架就乱码。

方案 A:在点击main()旁的运行按钮后选择修改运行配置,弹出的窗口的编译器选项加 -fexec-charset=GBKimage-20260817001644680

方案 B(不推荐)main 开头加一行:

system("chcp 65001 > nul");  // 把控制台切成 UTF-8,解决中文输出乱码

原理一句话:让"源码编码"和"控制台编码"一致。比赛提交前记得删掉这行(OJ 上不需要,有的评测机还会警告)。

4.5 运行与调试

这一部分可以等到后续学C++时体验

  • 运行:右上角绿色三角 / Shift+F10
  • 调试:右上角虫子图标 / Shift+F9
  • 调试三件套:
    • 断点:点代码行号右侧,出现红点。程序跑到这里会暂停
    • 单步:F8 步过(一行一行走)、F7 步入(走进函数内部)
    • 变量监视:调试时左侧 Variables 面板实时看变量值;也可以选中表达式右键 Add to Watches
  • 常见流程:样例不过 → 在可疑行打断点 → 调试运行 → 看变量在哪一步开始不对

4.7 禁用 AI(重要)

新版 CLion 捆绑了 JetBrains AI Assistant,有AI建议补全代码功能,虽然弹出建议直接按tab补上一整行甚至多行很爽,但容易造成 学过就忘 情况,当然比赛的时候时没有这玩意的,建议从一开始就关掉:

如图:

image-20260817002435192image-20260817002508946

关闭后还剩的输入时补全单词的功能还是可以用的,长点的词敲一半按下tab填充完整还是很好使的。

image-20260817003033606

4.8 常用快捷键

功能 快捷键
运行 Shift+F10
调试 Shift+F9
步过 F8
步入 F7
跳出 Shift+F8
格式化代码 Ctrl+Alt+L
搜索 双击 Shift

5. VSCode 篇

5.1 安装 VSCode

  1. 官网下载:https://code.visualstudio.com/ (Windows 版,选 User Installer 即可)
  2. 双击安装。安装向导里建议勾选
    • "添加到 PATH"(以后能在终端直接敲 code
    • "将'通过 Code 打开'操作添加到文件和目录上下文菜单"(右键就能打开文件夹)
  3. 打开后左侧是图标栏,从上到下:资源管理器、搜索、源代码管理、运行和调试、扩展

【📷 截图:VSCode 首次打开界面】

5.2 安装中文插件

  1. 左侧点"扩展"图标(或 Ctrl+Shift+X)
  2. 搜索 Chinese,安装 Chinese (Simplified) Language Pack for Visual Studio Code(微软官方)
  3. 装完右下角提示重启,重启后界面全中文

【📷 截图:扩展商店搜 Chinese】

5.3 确认编译器可用

打开任意文件夹,新建 test.cpp,写个 A+B,然后按 Ctrl+~ 打开终端输入:

g++ --version

能输出版本号 = 第 3 章成功,继续。报错就回去看第 3 章。

5.4 第一步:装微软官方 C++ 扩展(先能跑)

  1. 扩展商店搜索 C++,安装 C/C++(作者 Microsoft,蓝色图标)
  2. 装完打开 .cpp 文件,编辑器会自动开始索引,写代码时应该有基本提示了
  3. 此时按 Ctrl+Shift+B 会提示"未配置生成任务"——先不管,5.7 节配

这一节只是"先跑起来"。微软这个扩展的代码提示(IntelliSense)又慢又卡,下一节换掉。

5.5 升级:clangd 替换微软 IntelliSense

微软 C/C++ 扩展的提示慢、占内存、有时候还错。竞赛代码短平快,推荐换成 clangd(业界公认的 C++ 语义分析引擎,快且准)。

安装 clangd(二选一):

  • 方法 A:扩展商店装 clangd(作者 LLVM,图标是红色圆环),装完打开 .cpp 会提示找不到 clangd,点 Download 自动下载(国内网络可能慢/失败,失败用方法 B)
  • 方法 B(推荐,稳):装 LLVM 全家桶。Win 键搜索 winget 或直接开终端:
winget install LLVM.LLVM

装完重开 VSCode。验证:终端敲 clangd --version

关掉微软家的智能感知(关键,否则两个补全打架)

  1. Ctrl+, 打开设置
  2. 搜索 intelliSenseEngine
  3. C_Cpp: IntelliSense Enginedefault 改成 disabled

(语法高亮、括号匹配这些功能还留着,只是提示交给 clangd)

配置 clangd 编译参数(让 clangd 知道用什么标准,否则标准库符号可能标红):见 5.7 的 settings.json。

【📷 截图:C_Cpp IntelliSense Engine 改 disabled】
【📷 截图:clangd 正常工作,写代码秒出提示】

5.6 调试:CodeLLDB

调试不用微软那套了(和 gdb 一样难用),换 CodeLLDB

  1. 扩展商店装 CodeLLDB(作者 Vadim Chugunov)
  2. 配好 5.7 的 launch.json 后,按 F5 即可断点调试,速度和体验比默认好一截

5.7 .vscode 文件夹配置(核心中的核心)

工作区文件夹根目录新建 .vscode 文件夹,里面放三个文件。注意:JSON 不支持注释,下面代码块是可直接复制使用的纯净版,字段解释写在代码块后面。

① tasks.json(编译任务,Ctrl+Shift+B 一键编译)

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "cppbuild",
      "command": "g++",
      "args": [
        "-std=c++17",
        "-O2",
        "-Wall",
        "-Wextra",
        "-fexec-charset=GBK",
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}.exe"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "problemMatcher": ["$gcc"]
    }
  ]
}

字段说明(记住常用的,以后自己改):

  • command: g++ —— 用的是第 3 章配的 PATH,所以不用写全路径
  • -std=c++17 —— 语言标准,竞赛统一 C++17
  • -O2 —— 优化开关,竞赛必开(不开 O2 时间限制可能过不了)
  • -Wall -Wextra —— 打开警告,帮你抓低级错误(数组越界、未用变量等)
  • -fexec-charset=GBK —— 中文输出不乱码(原理见 4.5)
  • -g —— 生成调试信息(F5 调试需要)
  • ${file} —— 当前打开的 .cpp 文件;输出 exe 和源码同名同目录

② launch.json(调试配置,F5 一键调试)

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug (lldb)",
      "type": "lldb",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
      "args": [],
      "cwd": "${fileDirname}",
      "console": "integratedTerminal"
    }
  ]
}

字段说明:

  • program —— 调试哪个程序(编译出的 exe,和 tasks.json 输出路径对应)
  • cwd —— 程序工作目录(读文件类题目需要,保持和源码同目录)
  • console: integratedTerminal —— 程序跑在 VSCode 内置终端里,能正常用 cin 输入

使用流程:先 Ctrl+Shift+B 编译 → 打断点 → F5 调试。

③ settings.json(编辑器 + clangd + Code Runner 统一配置)

{
  "editor.fontSize": 16,
  "editor.fontFamily": "Consolas, 'Courier New', monospace",
  "files.encoding": "utf8",
  "C_Cpp.intelliSenseEngine": "disabled",
  "clangd.fallbackFlags": ["-std=c++17", "-O2", "-Wall", "-Wextra"],
  "code-runner.runInTerminal": true,
  "code-runner.executorMap": {
    "cpp": "cd $dir && g++ -std=c++17 -O2 -Wall -Wextra $fileName -o $fileNameWithoutExt && $fileNameWithoutExt"
  }
}

字段说明:

  • editor.fontFamily —— 等宽字体,Consolas 是 Windows 标配(数字 0/O、1/l/i 分得清,写代码必须等宽字体)
  • files.encoding: utf8 —— 源码统一 UTF-8 保存
  • C_Cpp.intelliSenseEngine: disabled —— 5.5 节已说明,关掉微软提示
  • clangd.fallbackFlags —— clangd 的编译参数兜底(没有 compile_commands.json 时用它)
  • code-runner.* —— 给 5.9 节的 Code Runner 用,装了才有意义

c_cpp_properties.json 呢? 用 clangd + CodeLLDB 之后这个文件可以不要。网上老教程会让配它,那是微软 C/C++ 扩展时代的事,直接忽略。

【📷 截图:.vscode 文件夹里三个文件的完整目录结构】

5.8 CPH 插件:从抓题到提交一条龙

Competitive Programming Helper(CPH):竞赛专用插件,能把 OJ 题目抓进 VSCode,本地跑样例,甚至直接提交。

安装(两个东西,缺一不可)

  1. VSCode 扩展商店装 Competitive Programming Helper (cph)(作者 Divyanshu Agrawal)
  2. Chrome/Edge 浏览器装扩展 Competitive Companion(应用商店直接搜)

使用流程

  1. VSCode 里打开你的刷题文件夹(建议按专题/比赛分文件夹)
  2. 浏览器打开题目页面(Codeforces / AtCoder / 洛谷都支持)→ 点浏览器工具栏的 Competitive Companion 图标(红色胶囊形状)
  3. 题目自动出现在 VSCode 左侧 CPH 面板:题目描述、样例输入输出都齐了
  4. 写代码 → 点 CPH 面板的 Run tests → 自动跑全部样例,绿了就是过
  5. 全过之后点 Submit → 首次会让你登录 Codeforces/AtCoder 账号,之后一键提交

【📷 截图:浏览器点 Competitive Companion 图标】
【📷 截图:VSCode 里 CPH 面板跑样例全绿】

⚠️ 两个注意点:

  • 浏览器扩展和 CPH 之间的默认端口(10045)要一致,两边设置里都能看到,别乱改
  • 洛谷支持抓题,但 CPH 不支持直接提交洛谷,洛谷题自己复制去网页交

5.9 Code Runner:一键运行(可选)

日常"就想快速跑一下"时,比 Ctrl+Shift+B 更省事:

  1. 扩展商店装 Code Runner(作者 Jun Han)
  2. settings.json 里那两行 code-runner.* 已配好
  3. 打开 .cpp,点右上角播放按钮(或 Ctrl+Alt+N)直接编译运行

注意:Code Runner 是"运行",不带调试。正经调试还是 F5。它和自定义 tasks 二选一即可,都配也行,不冲突。

5.10 禁用 AI

  • 不装 GitHub Copilot、Cline、Continue 等任何 AI 编程插件
  • 理由:训练要自己动脑子,依赖补全会变懒;比赛现场断网,AI 帮不了你
  • ⚠️ 别误伤:clangd 的补全不是 AI,是本地语义分析,放心用

5.11 常见问题

症状 原因/解决
g++ 不是内部或外部命令 PATH 没配好 / 配完没重开终端
中文输出乱码 源码 UTF-8 + 控制台 GBK:tasks.json 已带 -fexec-charset=GBK,确认没删
clangd 标红一大片,包括 std fallbackFlags 没配 / clangd 没装成功(clangd --version 验证)
按 F5 提示找不到 exe 没先编译,或 launch.json 的 program 路径和 tasks 输出对不上
两个补全同时弹 C_Cpp.intelliSenseEngine 没设 disabled
下载插件/扩展超时 国内网络问题:开代理,或稍后再试,多试几次

5.12 验收清单

  • [ ] Ctrl+Shift+B 能编译,输出 exe
  • [ ] 中文输出不乱码
  • [ ] F5 断点调试正常
  • [ ] clangd 补全飞快(比微软扩展明显快)
  • [ ] CPH 能抓题、跑样例
  • [ ] 没装任何 AI 插件

6. Dev-C++ 篇(保底工具)

定位:机房/蓝桥杯只有它。要求不高:能编译、能运行、能调标准、能开警告。

6.1 版本选择(先搞清楚自己装的是啥)

Dev-C++ 有两个常见版本,界面和配置位置不一样,先认版本

  • Orwell Dev-C++ 5.11(经典版,2015 年停更):机房和蓝桥杯赛点几乎都是它。自带编译器 TDM-GCC 4.9.2(很老,C++ 新特性支持差)
  • Embarcadero Dev-C++(官方接手的新版,还在更新):https://www.embarcadero.com/free-tools/dev-cpp ,自带 GCC 10.3,支持 C++17,代码提示也比老版强

建议:家里装 Embarcadero 新版(好用一点),同时必须会操作 5.11(机房环境)。

蓝桥杯现实:赛点机房编译器老,C++11 是安全线。平时写 C++17 没问题,但赛前一定要拿机房环境实测新特性能不能过。

6.2 安装(以 5.11 为例)

  1. 下载安装包(官方源:https://sourceforge.net/projects/orwelldevcpp/ ,国内搜"Dev-C++ 5.11 下载"也有镜像)
  2. 双击安装,语言选 English(装完再改中文:Tools → Environment Options → Language → 简体中文)
  3. 首次启动选主题/语言,一路 Next

【📷 截图:安装完成首次启动界面】

6.3 编译器设置(最重要的三步)

打开 工具(Tools)→ 编译器选项(Compiler Options)

① 语言标准调新

  • 5.11:编译器选项 → "编译时加入以下命令"(Add the following commands)框里填:
-std=c++14

(5.11 自带编译器最高稳妥支持到 C++14 附近;想用 C++17 看 6.4 换编译器。Embarcadero 新版:设置里直接有语言标准下拉,选 C++17)

② 开优化 -O2

  • 编译器选项 → "编译时加入以下命令" 里补上(和标准写在同一行,空格隔开):
-std=c++14 -O2

(竞赛必须 -O2,理由同 5.7)

③ 开警告 -Wall -Wextra

  • 同样加在"编译时加入以下命令"里,最终效果:
-std=c++14 -O2 -Wall -Wextra

【📷 截图:编译器选项界面,命令框已填好】

顺手:编译器选项里还能把"编译时显示警告信息"类选项勾上,这样警告会出现在输出面板而不是一闪而过。

6.4 换新 MinGW(可选,想用 C++17 再做)

5.11 想用 C++17 完整特性,可以指向第 3 章装的 MinGW:

  1. 工具 → 编译器选项 → 顶部"编译器"页签
  2. "编译器安装目录"选 New,手动定位到 C:\mingw64
  3. 确定后语言标准可以填 -std=c++17

⚠️ 诚实警告:5.11 太老,和新 g++ 配合偶尔有小毛病(错误跳转、提示异常)。能用,但别指望完美。嫌麻烦就直接用 Embarcadero 新版

6.5 代码提示与万能头(认清现实)

  • Dev 的代码提示本来就弱:老版要手动按 Ctrl+Space 才出,Embarcadero 新版稍好
  • 万能头 #include <bits/stdc++.h> 在 Dev 里没有代码提示——因为 Dev 的索引器根本不解析 bits 目录下的文件。这个问题没有好用的解决方案(翻遍论坛也就那几个歪招),别浪费时间折腾
  • 结论:在 Dev 里写代码就别指望提示,函数名记不住就回 VSCode 写。编译能过、跑得对,Dev 的任务就完成了

6.6 竞赛模板文件(绕开提示问题的土办法)

新建文件时直接把模板贴进去,至少不用每次敲万能头和 main 骨架:

  1. 把附录 A 的模板存成一个 template.txt
  2. 每次新建源文件,全选粘贴即可
  3. (Embarcadero 新版可以在"工具 → 代码模板"里配真正的模板,老版没这功能,就用土办法)

【📷 截图:新建文件粘贴模板后的效果】

6.7 调试(能用,但别指望)

  • F5 加断点、F7 单步,基本调试能凑合用
  • 但体验很差(老版本对 STL 容器的查看基本是灾难)
  • 建议:样例不过,回 VSCode/CLion 调,别在机房硬磕

6.8 编码注意(老家伙的怪癖)

  • Dev 5.11 默认用 ANSI(GBK)保存文件
  • 在 Dev 里写的中文注释,拷到 VSCode(默认 UTF-8)会乱码;反之亦然
  • 处理:哪个工具写的代码就用哪个工具看,别来回倒腾;统一用 Dev 写完整再提交

6.9 蓝桥杯/机房实战注意

  • 提交方式:蓝桥杯是网页端贴代码提交,不是交文件
  • 机房电脑配置一般,别装太多东西,Dev 够了
  • 提前用机房环境跑一遍自己的代码:C++11 标准、老编译器、无 O2 时能不能过,赛前确认

6.10 验收清单

  • [ ] 能编译运行 A+B
  • [ ] 编译命令里带 -O2 -Wall -Wextra(标准按版本填)
  • [ ] 知道万能头在 Dev 里没提示,不折腾
  • [ ] 模板文件已就绪

7. 收尾与统一规范

7.1 三款工具统一规范(换工具不迷路)

项目 统一值
语言标准 C++17(机房 5.11 降到 C++14/11 兜底)
编译选项 -O2 -Wall -Wextra
编码 源码 UTF-8(Dev 里除外,Dev 写 Dev 看)
万能头 竞赛随便用,但要知道它是什么(见附录 A 说明)

7.2 日常流程建议

  1. 平时写题:VSCode(主力)或 CLion(体验派),CPH 抓题 → 写 → 跑样例 → 提交
  2. 赛前:用 Dev-C++ 模拟机房环境跑一遍,确认编译选项和新特性没问题
  3. 调试:先在 VSCode/CLion 用断点调明白,Dev 只当"能编译的记事本"

7.3 目录组织建议

  • 一个专题一个文件夹:D:\oj\dpD:\oj\graphD:\oj\cf-xxx(某场比赛)
  • .vscode 文件夹放最外层(工作区根目录),子文件夹的题都能共用配置
  • 每道题一个 .cpp:D:\oj\dp\P1048.cppD:\oj\cf-xxx\A.cpp

附录 A:竞赛代码模板

#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;

#define endl '\n'
#define all(v) (v).begin(), (v).end()

void solve() {
    // ===== 每道题在这里写 =====
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T = 1;
    // cin >> T;  // 多组数据时取消注释
    while (T--) solve();

    return 0;
}

关于万能头的说明(新生必读):

  • bits/stdc++.h 不是标准 C++ 头文件,是 GNU 编译器(g++)自带的一个"一键包含所有标准库头文件"的方便头
  • 因为评测环境基本都是 g++,所以竞赛用它没问题,能省一堆 include
  • 代价:编译变慢一点点(竞赛无所谓)、Dev 里没代码提示(见 6.5)
  • 进阶建议:图论/字符串等专题可以开始用标准头,但万能头在竞赛里完全合法,别纠结

模板里的两行 fast IO 解释

  • ios::sync_with_stdio(false); 关掉 cin/cout 和 C 的 scanf/printf 的同步,输入输出变快
  • cin.tie(nullptr); 取消 cin 和 cout 的绑定,进一步提速
  • 竞赛输入数据量大时,不写这两行可能 TLE。代价:不能混用 cin 和 scanf(别混用就行)

附录 B:常见问题索引

问题 去哪看
g++ 命令找不到 第 3 章 3.3/3.4
中文输出乱码 4.5(CLion)/ 5.11(VSCode)/ 6.8(Dev)
CLion 学生认证 4.2
VSCode 两个补全打架 5.5
VSCode 调试不了 5.11
CPH 洛谷不能提交 5.8
Dev 万能头没提示 6.5
机房编译器太老跑不了新语法 6.9

草稿完。正式版待补:全部截图、路径实测验证、机房环境实测。