ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux下用VSCode搭建C++开发环境:从安装到调试完整指南

Linux下用VSCode搭建C++开发环境:从安装到调试完整指南 工欲善其事必先利其器。在Linux上写C命令行g固然很“硬核”但写工程级代码时一个好用的编辑器能让效率翻倍。很多刚接触Linux的读者问过我VSCode怎么安装装完怎么写C为什么按教程配了却跑不起来这篇文章就基于我自己的实操把完整流程拆开揉碎讲清楚从零开始搭好一个可写、可编、可调的C开发环境。整个过程大概15分钟不需要额外的GUI工具尽量用命令行为主方便你在服务器或者本地虚拟机里照做。1. 动手前的准备系统、终端与软件包的基础认知1.1 先搞清你的Linux发行版与软件包格式Linux发行版非常多但绝大多数软件安装方式都可以归为两类一类是Debian系比如Ubuntu、Debian、Deepin、麒麟等使用apt包管理器软件包后缀是.deb另一类是Red Hat系比如CentOS、Fedora、openSUSE等使用yum或dnf包管理器软件包后缀是.rpm。这个区别很重要因为下载VSCode时官网会问你要.deb还是.rpm选错了就装不上。判断自己属于哪一系我常用的方法是在终端里敲cat /etc/os-release输出里会有ID字段比如ubuntu、debian、centos、rhel。看到什么就去软件源里找对应的版本。另外还有一个很关键的命令uname -m这个输出的是系统架构绝大多数PC是x86_64树莓派等ARM设备是aarch64。VSCode的下载页也区分了这两种架构一定要选对否则安装会直接报错“wrong architecture”。如果刚接触Linux建议优先选择Ubuntu LTS或Debian稳定版原因是用户基数大、遇到问题在网上几乎都能搜到答案编译工具链的依赖也十分齐全。CentOS 7自带的gcc版本偏老跑C17/20的时候会有点折腾不太适合新手入门。1.2 终端基础本文会用到哪些命令整个安装过程几乎全在终端里完成所以提前把会用到的命令列一下方便对照执行wget从网络下载文件。如果系统提示没有这个命令可以用curl -O替代或者先执行sudo apt install wget -y。tar/dpkg前者负责解压.tar.gz包后者负责安装.deb包。Red Hat系则对应rpm -ivh。sudo以管理员权限执行命令。Linux的安全模型讲究普通用户与管理员分离安装系统级软件时必须提权。which查看某个命令是否存在比如which g如果能输出路径就说明已安装。熟练这几个命令不仅今天能用以后在Linux上安装其他软件也一样通用。平时聊天时看到“linux常用命令”这类热词绕不开的就是上面这几个。1.3 最好有一个能复制粘贴的终端如果你是在虚拟机上操作想让后续配置更顺滑建议先装好open-vm-tools或VirtualBox增强功能这样终端能和宿主机共享剪贴板复制长命令时不用手动敲能省掉一半的体力活。如果是在云服务器上操作很多人用的是Windows的PowerShell或macOS的Terminal直接ssh登录这时只要保证网络通畅即可。唯一要注意的是有些环境粘贴快捷键是CtrlShiftV而不是CtrlV第一次粘不进去先别慌多半是快捷键问题。我个人还推荐安装一个htop方便随时观察资源占用。这个工具在启动VSCode、编译大工程时很好用不过不是必需项这里提一下。2. 安装VSCode官网包安装、软件源安装与免安装版2.1 方式一从官网下载deb/rpm包安装最直观打开VSCode官网的下载页面首页就会根据当前系统自动推荐合适的包。如果你用的是Ubuntu页面会默认出现.deb64位包如果是Fedora会默认出现.rpm包。我也习惯直接用wget命令行下载因为服务器上通常没有图形界面在网页里点点点反而麻烦。以Ubuntu 22.04为例完整流程是这样wget https://code.visualstudio.com/sha/download?buildstableoslinux-deb-x64 -O vscode.deb sudo dpkg -i vscode.deb第一次安装时有可能会报依赖缺失比如提示需要某些共享库。此时不要急执行sudo apt -f install -y这句话会自动修复残缺的依赖。之后再执行一次dpkg -i就可以了。装完以后终端输入code就能启动VSCode或者直接在图形界面应用列表里找到“Visual Studio Code”图标。这里有个小细节官网的下载链接是指向az764295.vo.msecnd.net这个地址的部分网络环境下会很慢。碰到这种情况我是通过把链接里的stable换成具体的版本号再走镜像加速但由于镜像不稳定这里不详细展开。耐心多等一会通常也可以接受。2.2 方式二使用微软软件源安装更新更省心如果你不想每次升级都去官网重新下载那最好把VSCode的官方软件源加到apt里。这样之后一个sudo apt update sudo apt upgrade就能顺带把VSCode一起升级体验和维护成本最低。步骤很简单先导入微软的GPG密钥然后把源写入源列表里wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/接着添加仓库信息echo deb [archamd64,arm64,armhf signed-by/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main | sudo tee /etc/apt/sources.list.d/vscode.list完成后更新并安装sudo apt update sudo apt install code -y如果系统的源文件语法要求比较严格也可以在/etc/apt/sources.list.d/下创建一个vscode.list文件把上面echo引号里的内容手动写进去效果是一样的。这种方式是我个人最推荐的因为Linux软件更新频率高VSCode几乎每月都有小版本迭代用软件源管理可以免去反复手动下载的麻烦。2.3 方式三解压即用的免安装版适合特殊场景VSCode还提供.tar.gz格式的免安装版官方叫“Linux x64 tar.gz”。下载后用终端解压就行wget https://code.visualstudio.com/sha/download?buildstableoslinux-x64 -O vscode.tar.gz mkdir -p ~/software/vscode tar -xzvf vscode.tar.gz -C ~/software/vscode cd ~/software/vscode ./code这种方式适合没有root权限的服务器用户或者你不想让软件污染系统目录。不过它也有个缺点不能通过apt自动更新升级时得自己重新下载覆盖。另外还需要手动创建桌面快捷方式如果只是临时写代码其实影响不大。这里顺便说一句很多初学者解压.tar.gz后一运行./code发现报错“cannot open shared object file”大多是缺了系统库最常见的缺失库是libnss3和libatk-bridge2.0-0。解决方案很简单sudo apt install libnss3 libatk-bridge2.0-0 -y这和使用.deb包安装时遇到的问题本质相同都是依赖没有自动拉取导致的。2.4 安装后快速验证与界面中文化不管用哪种方式安装成功后在终端输入code --version看到版本号输出就说明安装成功。首次启动时VSCode默认是英文界面想换成中文可以在扩展商店搜索Chinese (Simplified) (简体中文) Language Pack安装后右下角会弹出提示切换语言重启一次就生效。如果你更习惯英文界面保持原样也可以个人开发习惯不同没有对错。只是中文语言包在修改设置时鼠标悬停有中文提示对新手友好度更高。3. 安装核心编译工具链GCC、GDB与make3.1 编译器的工作原理与为什么需要好几个工具很多刚学C的人会疑惑明明VSCode只是个编辑器为什么还需要另外装GCC这里打个比方VSCode相当于Word负责写文字GCC相当于印刷厂负责把文字变成书。如果没有编译器你写的代码在电脑里只是一堆纯文本机器根本看不懂。GCCGNU Compiler Collection是Linux上最通用的C/C编译器它内部封装了预处理、编译、汇编、链接四个阶段。为了让你能一步步调试运行逻辑还需要GDB——一个调试器负责在你设置的断点处暂停程序、查看变量值。而make是一个构建工具用来管理多文件编译的依赖关系尤其在工程后期作用巨大。这三个工具的组合基本就是Linux C/C开发环境的“铁三角”。平时说的“VSCode配置C环境”本质上就是让VSCode能方便地调用这些外部工具而不是VSCode本身“内置”了编译和调试能力。3.2 一条命令完成安装在Ubuntu/Debian系下推荐直接安装完整构建套件sudo apt update sudo apt install build-essential gdb -ybuild-essential这个元包包含gcc、g、make、libc-dev等核心组件一条命令全部装齐比单独安装gcc再补依赖要省事得多。Debian系的包管理器会帮你自动处理依赖关系这也是它对新手上手最友好的地方。Red Hat系则对应sudo yum groupinstall Development Tools sudo yum install gcc-c gdb如果你的发行版是Arch Linux则用sudo pacman -S base-devel gdb。装完以后务必验证一下版本gcc --version g --version gdb --version make --version只要四行命令都能输出版本号说明工具链已经就绪。如果某个输出“command not found”说明安装过程中出现异常回头检查软件源或者npm仓库配置即可。3.3 先写一个最小C程序手动编译验证在进入VSCode之前我强烈建议先在终端手动编译一次确认编译器本身没问题。这样后续配置出错时能尽早定位是“编译器坏了”还是“VSCode配置坏了”。建一个测试目录和一个源文件mkdir -p ~/cppdemo cd ~/cppdemo vim main.cpp把下面这段代码写进去#include iostream int main() { std::cout Hello, Linux C! std::endl; return 0; }保存退出后用g编译g main.cpp -o hello这里-o hello指定输出文件名。执行./hello如果终端打印出Hello, Linux C!就说明从编译到运行的整条链路已经通了。这一步虽然简单但能帮你避开一个经典误区很多人一上来就在VSCode里点“运行”结果报错后完全不知道是编译器没装、还是插件没装、还是配置写错。先在终端验证一遍后续问题定位才有参照物。4. 安装并配置VSCode关键扩展插件4.1 C/C扩展最核心的“智能大脑”打开VSCode点击左侧边栏的扩展图标四个方块在搜索框输入C/C第一个结果通常是微软官方出的“C/C Extension Pack”或“C/C”作者名是Microsoft安装量在数千万级别。安装完成后VSCode会自动加载语言服务器做到代码高亮、自动补全、悬停查看函数签名、跳转定义、查找引用等操作。这些功能本质是通过clangd或微软自己的语言服务器实现的但用户不需要关心底层的进程细节装好即用。唯一要注意的是如果之前手动装过第三方的C插件比如cpptools旧版本建议先把旧插件卸载或禁用避免语言服务器冲突。我就遇到过两个插件同时接管智能提示结果补全反而失灵的情况。4.2 辅助插件CMake、Code Runner与主题美化除了C/C官方扩展下面几个插件是我每次配置都会一并装上的CMake与CMake Tools尽管单个cpp文件用g直接编译就够但工程文件一多、依赖一复杂手写g命令就成了灾难。CMake插件提供CMakeLists.txt的语法高亮和自动补全CMake Tools能在VSCode侧边栏直接选择构建目标非常方便。Code Runner适合快速运行单个cpp文件一键输出结果不需要手动配置tasks.json。但这个插件的输出是不带调试功能的只适合验证算法片段不适合正式项目。Bracket Pair Colorizer 2给不同层级的括号配上不同的颜色。C代码嵌套层级多时这个插件能省很多眼力。vscode-icons给文件树加上不同的文件类型图标纯属视觉增强但对查找文件确实有帮助。安装插件没有数量上限我自己的经验是控制在一个合理范围内。插件多了以后VSCode启动速度会变慢内存占用也会增高尤其是老机器上装个四五个核心插件即可不需要追求大而全。4.3 设置语言服务器C/C扩展的IntelliSense配置C/C扩展装好以后按下CtrlShiftP输入“C/C: Edit Configurations (UI)”会打开一个图形化配置界面。这里关键的选项是“编译器路径”一般指向/usr/bin/g如果不填插件可能找不到头文件路径导致智能提示失效。另外在“IntelliSense模式”下拉框里选择linux-gcc-x64。这个选项决定语言服务器按什么标准解析代码选错了会出现明明代码能编译、编辑器却满屏红波浪线的情况。如果不想打开图形界面也可以在项目根目录创建.vscode/c_cpp_properties.json手动写入{ configurations: [ { name: Linux, includePath: [ ${workspaceFolder}/**, /usr/include/**, /usr/local/include/** ], defines: [], compilerPath: /usr/bin/g, cStandard: c17, cppStandard: c17, intelliSenseMode: linux-gcc-x64 } ], version: 4 }这里把cppStandard设置为c17是因为C17已经是当前主流默认标准支持结构化绑定、if constexpr、std::optional一系列现代语法。如果你要跑C20协程式代码可以手动改成c20编译器版本够新并且加了-stdc20编译参数的情况下完全没问题。5. 配置tasks.json与launch.json实现一键编译调试5.1 理解VSCode的任务系统与调试器协议VSCode本身不能直接编译C它通过“任务Task”机制调用外部命令。具体来说你需要告诉它用什么命令编译编译哪些文件把结果输出到哪里。这些信息写在.vscode/tasks.json里。调试则是通过launch.json告诉VSCode启动哪个程序用什么调试器断点在哪里。VSCode里按下F5后它会先执行preLaunchTask这就是编译任务编译成功后自动启动GDB并加载程序然后停在断点处。这两份配置文件配好了你的工作流就会变成按F5自动编译自动跳转调试器。配不好就会出现经典的“launch: program ... does not exist”报错本质上就是没告诉VSCode程序到底生成在哪里。5.2 配置tasks.json编译任务到底怎么写在VSCode中打开你的项目文件夹用CtrlShiftP打开命令面板输入“Tasks: Configure Default Build Task”选择“Create tasks.json file from template”再选“Others”就会得到一个模板文件。把它改成下面这样{ version: 2.0.0, tasks: [ { label: C Build, type: shell, command: g, args: [ -g, -stdc17, ${file}, -o, ${fileDirname}/${fileBasenameNoExtension} ], group: { kind: build, isDefault: true }, problemMatcher: [$gcc] } ] }逐字段解释一下label是任务名字后面launch.json里引用的就是它command是实际执行的编译命令args是传给g的参数-g表示生成调试信息没有这个参数GDB就无法显示源码行号和变量值-stdc17指定语言标准${file}是当前打开的文件路径${fileBasenameNoExtension}是去掉后缀的文件名problemMatcher用来把gcc的编译报错解析到“问题面板”里双击即可跳到对应行。把文件保存成.vscode/tasks.json后按CtrlShiftB就能触发编译。编译成功后项目目录下会出现一个和源文件同名的可执行文件。这里我再加一句如果测试时编译一个“单文件项目”这个配置完全够用但如果项目里有很多cpp文件建议改用${workspaceFolder}/*.cpp作为编译对象或者直接上CMake后面会说到。5.3 配置launch.json让F5真正跑起来点击VSCode左侧的“运行和调试”图标三角形加小虫子选择“创建launch.json文件”再选择“C (GDB/LLDB)”模板生成后修改为{ version: 0.2.0, configurations: [ { name: C Debug, type: cppdbg, request: launch, program: ${fileDirname}/${fileBasenameNoExtension}, args: [], stopAtEntry: false, cwd: ${workspaceFolder}, environment: [], externalConsole: false, MIMode: gdb, setupCommands: [ { description: 为gdb启用整齐打印, text: -enable-pretty-printing, ignoreFailures: true } ], preLaunchTask: C Build, miDebuggerPath: /usr/bin/gdb } ] }这段配置里的preLaunchTask必须和tasks.json里的label完全一致否则调试器会提示找不到编译任务。program必须和tasks.json里的-o参数生成路径一致否则会找不到可执行文件。这两处是最容易踩坑的地方。externalConsole设置为false的目的是让程序输出显示在VSCode内置的“调试控制台”里省去弹外部终端窗口的麻烦。如果你需要程序接收标准输入比如写算法题时手动输入数据建议把externalConsole改成true弹出系统终端再输入体验会好很多。如果你用的本地终端另一个备选方案是把输出重定向到文件但不推荐新手这么做太绕。配置完成后在main.cpp里打一个断点鼠标点击行号左侧按F5程序会自动编译并在断点处暂停。此时左侧面板可以看到局部变量顶部有单步跳过、单步进入、继续等调试按钮这就是大家常说的“断点调试”。5.4 在VSCode中整合CMake不只是单文件当项目规模变大比如你写了一个冒泡排序算法单独一个文件还好说可一旦同时出现sort.cpp、utils.h、main.cpptask里直接写g命令就太僵硬了。这时我一般都引入CMake在项目根目录写一个CMakeLists.txtcmake_minimum_required(VERSION 3.10) project(CppDemo) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(main main.cpp sort.cpp)然后VSCode的CMake Tools插件会自动识别底部状态栏会显示“Build”按钮点一下就能完成构建。在launch.json里把program路径改成CMake生成的输出路径默认在build/下调试时也一样能命中断点。如果你是刚开始接触工程化管理从CMake起步会是个不错的选择。6. 常见问题与排查实录我踩过的一些坑6.1 按F5报错“launch: program ... does not exist”这个错误基本都是program路径和实际生成的可执行文件路径不一致导致的。比如tasks.json里把输出名写成了${workspaceFolder}/mainlaunch.json里却写的是${fileDirname}/hello自然对不上。排查思路如下先在终端里手动执行tasks里的命令看能不能生成可执行文件生成成功后在launch.json里改成实际生成路径确保preLaunchTask的label完全匹配大小写敏感。6.2 编译报错“undefined reference to ...”这个报错说明你的代码引用了某个函数但链接阶段没找到实现。常见原因有两个一是多个cpp文件时tasks.json只编译了当前文件忽略了其他文件二是链接库时忘了加-l参数比如使用数学库sqrt却忘了加-lm。解决办法就是把所有源文件都写进编译命令或者改用CMake管理。使用第三方库时明确在tasks或CMake里添加链接参数。6.3 中文乱码问题在Linux终端里写C字符串里直接输出中文经常会在调试控制台或者终端里显示成乱码。这个大多数是编码问题不一定和代码相关。解决方法分两步第一步确保源代码文件以UTF-8保存VSCode右下角有编码格式显示第二步在终端里运行locale命令检查LANG是不是en_US.UTF-8或zh_CN.UTF-8。如果不对可以用export LANGen_US.UTF-8做临时设置或者修改/etc/locale.gen来默认支持中文环境。另外如果遇到“解压文件乱码”问题那不是VSCode的锅而是ZIP包里的文件名用了GBK编码Linux默认的unzip按UTF-8解析所以乱了。解法是用unzip -O gbk参数解压。6.4 升级gcc后突然编译失败这种情况常见于系统里同时存在多个gcc版本比如Ubuntu 22.04自带的gcc 11你又手动装了gcc 13VSCode的tasks任务默认用的仍然是/usr/bin/g但CMake插件可能找到了新的编译器路径两者都在工作构建结果偶尔会有差异。解决方法是去.vscode/settings.json里固定编译器路径{ cmake.cmakePath: /usr/bin/cmake, cmake.generator: Unix Makefiles, C_Cpp.default.compilerPath: /usr/bin/g }6.5 VSCode启动后内存占用高、风扇狂转有些读者装完一堆插件后发现VSCode还没打开任何项目内存就占了几百MB。这大多数是C/C扩展在后台索引整个/usr/include目录导致的。解决方案是在c_cpp_properties.json里把includePath设计得更精确只保留常用目录或者用“工作区开关”在不需要时禁用C/C插件。如果是轻量级云服务器内存只有512MB跑VSCode全套确实有点吃力。此时建议关闭自动保存和大部分插件甚至考虑使用code-server在浏览器里用VSCode但这是另一个话题了这里先不展开。6.6 没有root权限的服务器怎么办如果是公司或学校的共享Linux服务器自己不是管理员没法sudo apt install任何包这时可以在用户目录下安装工具链下载MinGW或自带编译器的独立工具链到~/tools/目录修改~/.bashrc把工具链的bin路径追加到PATH环境变量中VSCode用免安装版解压到自己的目录不污染系统环境。这种方案虽然配置稍微麻烦一点但胜在灵活也不影响服务器上其他人使用。7. 配套进阶引入GCC调试、静态分析与工程优化7.1 用gdb做真正的变量值与堆栈分析很多初学者只知道断点调试但真正排查复杂Bug时GDB的命令行能力非常关键。比如程序崩溃了你可以直接在gdb里输入bt查看调用栈输入frame 2跳到指定层级输入print variableName查看变量值。在VSCode调试控制台底部其实可以直接输入GDB指令效果和终端里跑gdb一样。VSCode只是加了一个更友好的图形界面底层通信机制依然是GDB/LLDB的MI协议。搞清楚这一点就不会被各种调试面板弄晕。7.2 启用g警告与静态分析参数写C时不建议只加-g强烈建议加-Wall -Wextra。这两个参数会让编译器把潜在问题以警告形式提示出来比如未使用的变量、比较类型不匹配、隐式转换等。把这些警告全部清零代码质量会上一个台阶。命令行验证一下g -Wall -Wextra -g main.cpp -o main如果编译过程没有任何警告那恭喜代码比较干净。如果警告铺天盖地先别急着忽略逐条看过来通常能提前发现好几个隐患。有个说法叫“将警告视为错误”这可以用-Werror参数强制实现适合团队协作项目。7.3 从单文件到多文件再到动态库刚入门时所有代码塞进一个main.cpp写个几百行也没问题。但项目一旦超过500行就要开始考虑拆分成模块了。比较好的实践是一个类或一组相关函数对应一个.h声明和一个.cpp实现所有main.cpp里只写主流程编译时用CMake统一管理源文件列表。这时候再回头看你之前配置的tasks.json就会发现它确实只适合单文件场景。不是说独立文件方案不好而是“一个工具解决一类问题”随着工程规模变大及时切换到CMake会轻松很多。我也见过有同学硬是用一个巨型的tasks.json把十几个cpp文件的路径全部列出来看起来也能跑但维护成本已经明显超过收益了。7.4 静态库与动态库的链接顺序问题如果你开始用第三方的开源库比如OpenCV、Boost链接时会有个很常见的坑链接参数顺序错了会报“undefined reference”。GNU工具链在处理静态库时是单向扫描的被依赖的库必须放在依赖者之后。比如main.cpp依赖libfoo.a正确命令是g main.cpp -L. -lfoo -o main而不是把-lfoo放在main.cpp前面。这一点在手动敲命令时偶尔会碰到但用CMake的话几乎不会踩坑因为CMake会自动处理库依赖顺序。新手阶段这点了解一下即可不用深究。8. 性能与体验优化让VSCode更适合日常C开发8.1 调整VSCode的搜索与文件监视Linux上VSCode默认会监听整个工作区的文件变化如果你改了代码它会在毫秒级别更新资源管理器。但对大型工程来说文件监视会产生较高的CPU开销。可以在settings.json里加files.watcherExclude: { **/.git/objects/**: true, **/build/**: true, **/node_modules/**: true }把不需要监听的目录排除掉能显著降低资源消耗。同理search.exclude里再加一份相同路径可以避免全局搜索时把build目录下的二进制文件也搜进去。8.2 为大文件开启多标签预览与自动保存大日志、生成的头文件打开后VSCode会默认开启“预览模式”标签页文件名是斜体点下一个文件就会替换。如果想稳定保留标签可以在“设置”里搜索workbench.editor.enablePreview把它关掉。这虽然很小但对多文件切换的体验影响很大。自动保存可以设置成afterDelay延迟1000毫秒。写C时每次调完函数就自动存盘配合F5编译调试会非常顺手。我第一次用“自动保存一键构建”这个组合时明显感觉自己写代码的节奏快了很多。8.3 善用代码片段与用户片段C新手常需要记忆各种头文件写法和for循环模板。其实可以在VSCode里自定义代码片段。比如按下CtrlShiftP输入“Snippets: Configure User Snippets”选择“cpp.json”加入{ Print to debug: { scope: cpp, prefix: dbg, body: [ std::cerr \$1 \ $1 std::endl; ], description: 输出变量值到标准错误 } }之后只要在编辑器里输入dbg再按Tab就能快速生成一行调试输出语句。这种小技巧看着不起眼但长期积累下来能省很多时间。写在最后亲自跑一遍才是硬道理配置Linux上的VSCode和C环境本质上就是三件事装好编辑器、装好编译工具链、把两者正确地衔接起来。这个过程没有太多玄学每一步都可以在终端里手动验证。只要你会用g把代码编译成可执行文件再让VSCode把编译调试动作自动化整个开发环境就算组建完成。我个人在配置过程中最深刻的体会是不要盲目复制网上的配置。不同发行版、不同gcc版本、不同项目结构配置内容会有很大差异。复制过来以后至少要把每个字段什么意思弄明白这样遇到报错才知道从哪里去查。如果你后面接触Linux更深可能会慢慢从VSCode迁移到Vim或者CLion但核心的编译调试逻辑不会变。现在花时间把GCC、GDB、CMake这套工具链弄熟以后不管换什么编辑器都是一件水到渠成的事。遇到具体问题把报错信息原样复制到搜索引擎里查多半能定位到解决方案。开发环境本身不是目的能顺畅地写好C程序才是最终目标。
返回列表