付费插件党提议划走
白嫖党、多语言战士、IDE统一教信徒请继续
想体验”一个IDE学多种语言”的快感吗?这篇指南就是你的答案!
大家好! 最近一直在爆肝更新”四语言同步学”教程,C/C++系列一直未来得及更(求轻喷)。今天特地为大家带来一篇纯白嫖向的实用指南——
- 今天特地为大家带来一篇实用指南——JetBrains IDE外部工具配置C/C++开发环境。
- 这可能是最不起眼但绝对免费高效的方法,特别适合多语言学习环境下不想频繁切换IDE的开发者!
- 你们要的C/C++外部工具配置来了!
- 上次的Rust外部工具配置火了之后,许多兄弟催更C/C++版本
- → Rust外部工具配置完整教程
今天就把我压箱底的C/C++极简开发环境配置大公开!
✅为什么选择白嫖外部工具配置?
- 随着Clion开始收费,包括传统JetBrains IDE插件中C/C++插件也面临诸多兼容性问题,本蜀黎就踩了许多的坑,许多开发者被迫转向VSCode。
- 但今天,我要告知大家:还有第三条路!
再次声明
- 别再说我是JetBrains脑残粉!VSCode、DevC++、甚至记事本我都用
适合人群:
- ✅ 多语言学习党(电脑配置低内存吃紧,不想开一堆IDE)
- ✅ 预算有限党(能白嫖绝不花钱)
- ✅ 效率至上党(一个工具搞定所有)
- ✅ C/C++新手党(环境搭建头疼症患者)
外部工具的局限性(实话实说)
❌ 缺少的智能功能
1. 语法自动补全 → 需要手动输入
2. 类型推导提示 → 需要自己看文档
3. 错误实时检测 → 需要编译后才知道
4. 代码重构工具 → 需要手动修改
5. 智能导入提示 → 需要自己记模块路径
但日常学习完全够用!还能顺便练就一手记事本写代码的硬核功力,后来去哪都是降维打击!
适用环境
- 操作系统: Windows 10/11(我的Win10版本比较低)
- C/C++工具链: GCC(版本看截图)(此篇不展开讲解,提议CSDN搜索教程安装)
- GCC 15.1.0 – 最新稳定版本
- MinGW-W64 – Windows平台GCC移植版
- x86_64 – 64位架构
- msvcrt-posix-seh – 运行时库和异常处理机制
- IDE: IntelliJ IDEA

温馨提示,由于是手把手教,复制粘贴就能用,截图较多请耐心看
以下讲解内容用IDEA展开(因工具链太多,此篇主讲GCC,其他工具链Clang,MSVC你们自行拓展)
拓展说明
本文专注于GCC工具链配置,由于它是:
- 最适合入门的学习选择
- 资料最丰富的生态体系
- 兼容性最好的跨平台方案
如果你对其他工具链感兴趣:
- Clang:错误提示更友善,适合深度调试
- MSVC:Windows原生开发,VS生态集成
- 其他编译器:各有特色,可自行探索
记住:先精通一个,再涉猎多个!
️ C语言外部工具配置
单文件编译执行
方案一:GCC编译运行(推荐,对早期版本兼容较好,1种配置即可)
名称: C编译运行
程序: cmd.exe
参数: /c "gcc "$FilePath$" -o "$FileDir$$FileNameWithoutExtension$.exe" && "$FileDir$$FileNameWithoutExtension$.exe""
工作目录: $FileDir$
实参放大截图,下文不再单独另截,直接参照代码块参数文本配置⏫
⚡ C++外部工具配置
单文件编译执行(版本差异较大,GCC 默认可能不是最新标准,提议设置两个参数)
方案一:G++默认编译运行
名称: C++默认编译运行
程序: cmd.exe
参数: /c "g++ "$FilePath$" -o "$FileDir$$FileNameWithoutExtension$.exe" && "$FileDir$$FileNameWithoutExtension$.exe""
工作目录: $FileDir$

方案二:C++17标准编译
名称: C++17编译
程序: cmd.exe
参数: /c "g++ -std=c++17 "$FilePath$" -o "$FileDir$$FileNameWithoutExtension$.exe" && "$FileDir$$FileNameWithoutExtension$.exe""
工作目录: $FileDir$
接下来演示直接编译的结果是否正常⏬
C语言
#include <stdio.h>
int main() {
printf("Hello, 白嫖C语言开发环境!
");
int a = 42;
printf("君臣佐使,中药七情:%d
", a);
// 数组操作
int arr[] = {1, 2, 3, 4, 5};
for(int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("
");
return 0;
}
新建文件test.c->代码复制进去->右键外部工具->C-GCC
C++
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
cout << "Hello, 现代C++白嫖环境!" << endl;
// C++11特性测试
vector<string> languages = {"Python", "JavaScript", "Go", "Java", "C", "C++", "Rust"};
for(const auto& lang : languages) {
cout << "我正在学习: " << lang << endl;
}
// 自动类型推导
auto answer = 42;
cout << "答案依然是: " << answer << endl;
return 0;
}
新建文件test.cpp->代码复制进去->右键外部工具->C++
平时默认编译即可,新语法版本切到C++17运行,不再单独截图⏫
外部工具配置优势分析
✅ 核心优势
- 零成本: 无需任何付费插件
- 功能完整: 完整支持C/C++日常学习单独运行
- 统一管理: 与现有工具链完美整合
- 多语言友善: 在同一IDE中管理多种编程语言
适用场景
- 多语言学习者
- 预算有限的开发者
- 喜爱统一开发环境的效率学习追求者
- 需要快速验证代码片段的场景
接下来宏命令的通用性
本文使用的宏命令(如$FilePath$、$FileDir$)在JetBrains全家桶中完全通用:
- ✅ IntelliJ IDEA
- ✅ PyCharm
- ✅ WebStorm
- ✅ GoLand
- ✅ CLion
- ✅ RustRover
其他IDE可能有类似功能,但语法略有不同。
外部工具宏参数大全表
基础文件路径宏
|
宏变量 |
作用 |
示例 |
|
$FilePath$ |
获取文件完整路径 |
D:projectsrcmain.c |
|
$FileDir$ |
获取文件所在目录 |
D:projectsrc |
|
$FileName$ |
获取带扩展名的文件名 |
main.c |
|
$FileNameWithoutExtension$ |
获取不带扩展名的文件名 |
main |
|
$Prompt$ |
弹出用户输入对话框 |
输入项目名称 |
⚙️ 编译器参数详解
|
参数 |
作用 |
适用语言 |
|
gcc |
C语言编译器 |
C |
|
g++ |
C++编译器 |
C++ |
|
clang |
LLVM C编译器 |
C |
|
clang++ |
LLVM C++编译器 |
C++ |
|
rustc |
Rust编译器 |
Rust |
编译优化参数详解
|
参数 |
作用 |
推荐场景 |
|
-O0 |
无优化(默认) |
调试阶段 |
|
-O1 |
基本优化 |
平衡调试与性能 |
|
-O2 |
标准优化 |
发布版本 |
|
-O3 |
激进优化 |
性能要求极高 |
|
-Os |
优化代码大小 |
嵌入式开发 |
|
-g |
生成调试信息 |
GDB调试 |
C++标准选择参数
|
参数 |
标准版本 |
特性支持 |
|
-std=c++11 |
C++11 |
auto、lambda、智能指针 |
|
-std=c++14 |
C++14 |
泛型lambda、二进制字面量 |
|
-std=c++17 |
C++17 |
结构化绑定、内联变量 |
|
-std=c++20 |
C++20 |
概念、范围、协程 |
虎山CTO提议:新项目推荐从C++17起步,既有现代特性又有良好兼容性!
⚡ 警告控制参数
|
参数 |
作用 |
严格程度 |
|
-Wall |
开启所有常见警告 |
推荐使用 |
|
-Wextra |
额外警告信息 |
较严格 |
|
-Werror |
将警告视为错误 |
超级严格 |
|
-w |
关闭所有警告 |
不推荐 |
虎山CTO箴言:严管警告如练兵,-Wall -Wextra 日常修炼,-Werror 发布把关!
系统链接参数
|
参数 |
作用 |
使用场景 |
|
-pthread |
链接线程库 |
多线程程序 |
|
-lm |
链接数学库 |
数学运算 |
|
-lstdc++ |
链接C++标准库 |
C++程序 |
|
-static |
静态链接 |
独立可执行文件 |
虎山CTO点睛:链接如织网,选对库文件才能编织出稳固的程序!
️ 外部工具命令参数
|
参数组件 |
作用 |
示例 |
|
/c |
执行命令后终止 |
cmd.exe /c “gcc main.c” |
|
/k |
执行命令后保持窗口 |
cmd.exe /k “gcc main.c” |
|
&& |
前命令成功执行下一个 |
编译 && 运行 |
|
|| |
前命令失败执行下一个 |
编译 || 显示错误 |
虎山CTO技巧:/c 适合自动化脚本,/k 适合调试观察,&& 构建流水线!
目录操作宏(高级)
|
宏变量 |
作用 |
示例 |
|
$ModuleFileDir$ |
模块文件目录 |
项目根目录 |
|
$ProjectFileDir$ |
项目文件目录 |
解决方案目录 |
|
$ContentRoot$ |
内容根目录 |
工作空间目录 |
虎山CTO心得:目录宏是项目导航的罗盘,精准定位才能高效开发!
输出重定向参数
|
参数 |
作用 |
使用示例 |
|
> output.txt |
输出重定向到文件 |
program.exe > output.txt |
|
2> error.txt |
错误输出重定向 |
program.exe 2> error.txt |
|
&> log.txt |
所有输出重定向 |
program.exe &> log.txt |
虎山CTO实战:重定向是调试利器,标准输出、错误输出分而治之!
跨平台编译参数
|
参数 |
作用 |
目标平台 |
|
-m32 |
编译32位程序 |
Windows/Linux 32位 |
|
-m64 |
编译64位程序 |
Windows/Linux 64位 |
|
-mwindows |
隐藏控制台窗口 |
Windows GUI程序 |
虎山CTO指南:目标平台要明确,32位兼容性好,64位性能优,GUI程序要隐藏控制台!
接下来献上Clion参数表(详情可以看⏬此篇文章有参数详细对比讲解,避坑指南)
CLion 调参高手都在用的配置!续集:GoLand 飞升后,C/C++ 开发 IDE 性能炸裂的秘密
以下是我的参数clion.vmoptions:
-Xms1024m
-Xmx4096m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:ParallelGCThreads=8
-XX:ConcGCThreads=4
-XX:InitiatingHeapOccupancyPercent=45
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=$USER_HOME/clion_error.hprof
-XX:+AlwaysPreTouch
-XX:-OmitStackTraceInFastThrow
-XX:TieredStopAtLevel=1
-XX:CICompilerCount=8
-XX:SoftRefLRUPolicyMSPerMB=100
-Dfile.encoding=UTF-8
-Dsun.jnu.encoding=UTF-8
-Dsun.io.useCanonCaches=false
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dsun.java2d.d3d=true
-Dsun.java2d.opengl=false
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/sun.nio.fs=ALL-UNNAMED
–这行应该是你的魔法,正常的应该没有
⚖️ CMake vs Cargo 设计差异
Cargo 优势:
- 自动识别二进制目标
- 统一构建命令
- 智能依赖管理
CMake 特点:
- 显式配置,灵活性高
- 适合复杂项目结构
- 外部工具需要手动指定每个目标,超级麻烦
坦白局:CMake + 外部工具的硬伤
- 配置繁琐,缺乏动态感知:外部工具的参数是静态的、预先写死的。
- 在CMakeLists.txt中每新增一个 add_executable(new_app …) 目标,都必须手动为它创建一个新的外部工具配置,IDE无法自动感知并列出所有可运行目标。
- 这远不如 Clion 的原生支持来得流畅。
- 目录管理两难:文件放在同级目录,main函数冲突报错;
- 若分拆到子目录,又需要为每个文件夹维护独立的CMakeLists.txt,管理成本陡增。
新手体验不友善:外部工具与CMake目标强绑定,本质上等同于“写一次代码,配一次环境”。新建一个程序就要重新配置一遍,学习曲线超级陡峭。
结论:
- 对于正经的CMake项目,如果条件允许,我们更推荐使用 Clion 或 VSCode + CMake插件,其开箱即用的体验要好上几个量级。
- 本教程的外部工具方案,定位就是编程界的瑞士军刀——轻便、免费、即拿即用,适合快速验证想法…










![beego– [4]数据提交&数据获取 - 宋马](https://pic.songma.com/blogimg/20251028/f18086d3fcbc48c0821bc77a72581740.jpg)








暂无评论内容