【重要 Tips】VSCode 与 C/C++
vscode吧
全部回复
仅看楼主
level 12
Dragon1573 楼主
这是一篇重要提醒,希望吧主可以帮忙做个置顶。
--------------------------------------------------
VSCode 的定位是一个全功能代码编辑器,它不是大部分小白想象的「开箱即用」。尤其在 Windows 这种安装 C/C++ 开发环境如此费劲的操作系统上,依赖于大量配置文件完成外部工具性应用程序联动的 VSCode 是阻碍小白们学习 C/C++ 的极大障碍。
因此,本小吧主提醒:
1)在 Windows 上进行 C/C++ 开发的新人请考虑使用 Orwell Dev-C++ (不过有点年代了,最新版发布于10年前) ,或者使用 Embarcadero Dev-C++ (这个比较新且持续维护中,但适用人数较少,没有 Orwell 那个知名),又或者考虑 JetBrains CLion (首选,对后续迁移至 VSCode 有较大帮助,不过本身要钱) ,还可以直接使用 Microsoft 官方首选 Visual Studio IDE (注意 VSIDE 和 VSCode 不是同一个东西,作为小白只需要 Community 社区版,用不着付费的 Professional 专业版和 Enterprise 企业版) 。对于 macOS 用户请无脑 XCode ,Linux 用户群体本身自带门槛不在考虑范围内(用 Linux 的基本都知道自己要干啥、怎么干)。
2)逛吧过程中,我看到大量 Windows C/C++ 小白查找到的安装教程都在使用 MinGW-w64 。此应用不是 Microsoft 官方推荐,任何问题都和 Windows / Microsoft 没有任何关系,且此应用不包含 Windows SDK 部分(它们仅由 VSIDE 和其功能核心 MSBuild Tools 提供),在后续学习(比如 MFC 或者 Win32 API 之类的 Windows 底层,或者安装涉及 Python C API 的第三方库,或者安装需要 node-gyp 本地编译的 JavaScript 第三方库)会无意中引入其他复杂的问题。请无脑安装 VSIDE 或 MSBuild Tools (全名 "Visual Studio 生成工具") 。
3)待你对 C/C++ 有较深了解,能够保证自己不会写出连语法都不通的代码后,请完成 CMake 入门。VSCode 有针对 CMake 配置文件 CMakeLists.txt 的智能代码补全,你至少要能够写出一个最小规模的 CMake 配置文件、搭建出一个最简单的 CMake 项目。
4)请不要使用 Code Runner 插件。对于 C/C++ 用户,VSCode 首选插件 Microsoft C/C++ 已经具备了相关代码的编译、执行、调试功能,不需要额外引入其他插件来提供这个功能。对于 CMake 项目,CMake 扩展插件将检测到此特征并调用本地已安装的 cmake.exe 接管一切编译/执行/调试过程,不需要再手写其他配置文件(这就是要求完成 CMake 入门的原因,且 VSCode + CMake + MSBuild 也是 Microsoft 官方的 Windows C/C++ 开发最佳实践)。
2024年09月28日 10点09分 1
level 5
如果只是入门学习C++语法或者练习算法数据结构,完成作业,过期末考试。mingw64确实轻量简单易用。单文件代码程序调试运行非常方便。
2024年10月04日 23点10分 3
依旧不建议用 MinGW-w64 。这玩意儿是独立存在的,而且其发行方式(*.tar.zstd)本来就不考虑 Windows 平台(现有最新好像才 v8.1.0),如果有这个需求,用 DevC++ 之类的工具远比折腾 MinGW-w64 要方便。
2024年10月05日 15点10分
除非你们的课程教学目标是 Linux ,希望在 Windows 上借助 Cygwin / MinGW64 等终端模拟器尽可能获得和 Linux 等效的体验,也方便代码能快速迁移到 Linux 平台去
2024年10月10日 04点10分
@Dragon1573 mingw64是gcc在win的移植,其构建目标就是exe程序。编译器体积不到1GB,而且更新与gnu同步,现在最新的是14.2.0,简单写代码真就是VSCode+ mingw64组合最好,除了有编码这个坑,但是注意的话,也是没问题的
2024年10月10日 04点10分
@王砚冰 但它终归不带Windows SDK部分,不然Python for Windows在编译构建带有Python C API或Rust API的三方库时为什么强制要求MSVC?以及多数项目的Windows发行版本也是MSVC而非GNU?
2024年10月10日 05点10分
level 5
不懂就问,为啥不推荐Code runner扩展插件
2024年10月07日 11点10分 5
上面已经提到了,你只要装了语言对应的官方首推插件,那个插件已经足够你调试/运行了。Code Runner默认运行环境在“输出”而不是“终端”,“输出”是没有stdin的,要修改Code Runner默认行为又要去改配置文件(有UI界面也很麻烦,更何况有些只能进JSON配置文件去改),纯粹给小白没事找事上强度
2024年10月07日 11点10分
@拉斐尔_格瓦拉 而且Code Runner默认行为生成的编译/运行命令很多时候并不适用小白的需求,调这个挺麻烦的,且没有调试能力。小白运行炸了也不知道炸哪了
2024年10月07日 11点10分
level 1
直接一步到胃:绿色版VC++ 6.0[笑眼]
2024年10月09日 08点10分 6
原来这就是大学里面仍然用这些“老东西”的原因吗 确实使用非常简易
2025年02月24日 08点02分
@倒冰四日字 是的,学新东西很好,但有些新东西门槛还蛮高的,对于小白直接劝退。没几个人愿意上来就地狱开局,尽管把这个搞懂可以大量爆经验
2025年02月24日 15点02分
@倒冰四日字 比如隔壁 Python 吧,用 PyCharm 的一大把,但大部分人都搞不懂 PyCharm 新建项目时的那个 Venv / Virtualenv / Conda 虚拟环境是干什么的,以及另一大堆人频繁问自己命令行里 pip install 已经装上依赖了但为啥项目里用不了。
2025年02月24日 15点02分
@倒冰四日字 和小白解释这个虚拟环境,看到就血压高[阴险]
2025年02月24日 15点02分
level 1
大佬 想问你一个关于git的问题 我git无法初始化怎么办呢
2024年10月25日 03点10分 8
建议开新帖附图/视频上去
2024年10月25日 03点10分
@Dragon1573 好哒 谢谢哈 我现在在外面 你等会帮我看看呢[泪]
2024年10月25日 04点10分
@Dragon1573 大佬不用啦 我自己解决啦
2024年10月25日 07点10分
level 1
大佬可以请教你一些问题吗
2024年11月23日 03点11分 10
不能,建议先去学一下《提问的艺术》
2024年11月23日 03点11分
level 1
大佬 请问这个问题怎么解决 我用scanf写入的中文 然后再printf出来就会变成乱码 求教[乖]
2025年03月06日 10点03分 11
@𝑿.𝒙 我没什么好办法,不知道你是怎么调的。我用 CMake ,源文件使用 UTF-8 with BOM 编码,没有遇到过乱码问题
2025年03月06日 10点03分
大概是终端环境编码和你程序IO用的编码不一致,这样就会乱
2025年03月06日 10点03分
@Dragon1573 我用的是vscode默认的终端 f5调试的那个
2025年03月06日 10点03分
@Dragon1573 有什么解决办法吗 我是新手[小乖] 搞了好久都没弄好
2025年03月06日 10点03分
level 1
大佬,我现在vscode只能printf,我打了个简单计算数值的代码就会弹出这个,然后我选择vscode打开,就会弹第二张图片,怎么解决啊
2025年12月03日 05点12分 12
Windows 是以文件后缀名识别其打开方式的,Windows PE 可执行文件的后缀名统一为 .exe ,你需要用 GCC 把 .c 源文件编译为 .exe 可执行文件。你图中把 6.demo.c 编译成 6.demo 丢后缀名了,Windows 会把 .demo 当后缀名尝试打开
2025年12月03日 09点12分
那段自动生成的命令应当是 -o 6.demo.exe 才对
2025年12月03日 09点12分
macOS / Linux 下是通过文件开头的「魔法值」识别文件类型,因此文件后缀名不重要,你的 "6.demo" 整体是一个文件名没有后缀,也能被 macOS / Linux 正常识别为 ELF 可执行二进制文件。
2025年12月03日 09点12分
@Dragon1573 感谢大佬已解决
2025年12月03日 13点12分
1