随着Clion开始收费,包括传统JetBrains IDE插件中C/C++插件也面临诸多兼容性问题,本蜀黎就踩了很多的坑,很多开发者被迫转向VSCode。但今天,我要告诉大家:还有第三条路!1. 语法自动补全 → 需要手动输入2. 类型推导提示 → 需要自己看文档3. 错误实时检测 → 需要编译后才知道4. 代码重构工具 → 需要手动修改5. 智能导入提示 → 需要自己记模块路径摘要:随着Clion开始收费,包括传统JetBrains IDE插件中C/C++插件也面临诸多兼容性问题,本蜀黎就踩了很多的坑,很多开发者被迫转向VSCode。但今天,我要告诉大家:还有第三条路!
记住:先精通一个,再涉猎多个!
方案一:GCC编译运行(推荐,对早期版本兼容较好,1种配置即可)
名称: C编译运行程序: cmd.exe参数: /c "gcc "$FilePath$" -o "$FileDir$\$FileNameWithoutExtension$.exe" && "$FileDir$\$FileNameWithoutExtension$.exe""工作目录: $FileDir$实参放大截图,下文不再单独另截,直接参照代码块参数文本配置⏫
方案一:G++默认编译运行
名称: C++默认编译运行程序: cmd.exe参数: /c "g++ "$FilePath$" -o "$FileDir$\$FileNameWithoutExtension$.exe" && "$FileDir$\$FileNameWithoutExtension$.exe""工作目录: $FileDir$平时默认编译即可,新语法版本切到C++17运行,不再单独截图⏫
宏变量作用示例$FilePath$获取文件完整路径D:\project\src\main.c$FileDir$获取文件所在目录D:\project\src$FileName$获取带扩展名的文件名main.c$FileNameWithoutExtension$获取不带扩展名的文件名main$Prompt$弹出用户输入对话框输入项目名称参数作用适用语言gccC语言编译器Cg++C++编译器C++clangLLVM C编译器Cclang++LLVM C++编译器C++rustcRust编译器Rust参数作用推荐场景-O0无优化(默认)调试阶段-O1基本优化平衡调试与性能-O2标准优化发布版本-O3激进优化性能要求极高-Os优化代码大小嵌入式开发-g生成调试信息GDB调试参数标准版本特性支持-std=c++11C++11auto、lambda、智能指针-std=c++14C++14泛型lambda、二进制字面量-std=c++17C++17结构化绑定、内联变量-std=c++20C++20概念、范围、协程参数作用严格程度-Wall开启所有常见警告推荐使用-Wextra额外警告信息较严格-Werror将警告视为错误非常严格-w关闭所有警告不推荐虎山CTO箴言:严管警告如练兵,-Wall -Wextra 日常修炼,-Werror 发布把关!
参数作用使用场景-pthread链接线程库多线程程序-lm链接数学库数学运算-lstdc++链接C++标准库C++程序-static静态链接独立可执行文件参数组件作用示例/c执行命令后终止cmd.exe /c "gcc main.c"/k执行命令后保持窗口cmd.exe /k "gcc main.c"&&前命令成功执行下一个编译 && 运行||前命令失败执行下一个编译 || 显示错误虎山CTO技巧:/c 适合自动化脚本,/k 适合调试观察,&& 构建流水线!
宏变量作用示例$ModuleFileDir$模块文件目录项目根目录$ProjectFileDir$项目文件目录解决方案目录$ContentRoot$内容根目录工作空间目录参数作用使用示例> output.txt输出重定向到文件program.exe > output.txt2> error.txt错误输出重定向program.exe 2> error.txt&> log.txt所有输出重定向program.exe &> log.txt参数作用目标平台-m32编译32位程序Windows/Linux 32位-m64编译64位程序Windows/Linux 64位-mwindows隐藏控制台窗口Windows GUI程序虎山CTO指南:目标平台要明确,32位兼容性好,64位性能优,GUI程序要隐藏控制台!
CLion 调参高手都在用的配置!续集:GoLand 飞升后,C/C++ 开发 IDE 性能炸裂的秘密
-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目标强绑定,本质上等同于“写一次代码,配一次环境”。新建一个程序就要重新配置一遍,学习曲线非常陡峭。
来源:ERP老兵-冷溪虎山