惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
美团技术团队
Last Week in AI
Last Week in AI
Jina AI
Jina AI
P
Privacy International News Feed
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
T
Tenable Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
P
Privacy & Cybersecurity Law Blog
人人都是产品经理
人人都是产品经理
S
Schneier on Security
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
C
Cisco Blogs
K
Kaspersky official blog
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
O
OpenAI News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
博客园 - 【当耐特】
腾讯CDC
V
V2EX
A
Arctic Wolf
Webroot Blog
Webroot Blog
S
Securelist
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 三生石上(FineUI控件)
The GitHub Blog
The GitHub Blog
量子位
J
Java Code Geeks
博客园 - 叶小钗
S
SegmentFault 最新的问题
Project Zero
Project Zero
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Scott Helme
Scott Helme
Cyberwarzone
Cyberwarzone

Menghuan1918's Blog

提升浏览器多标签页管理效率 介绍页 友链 My Arch Linux - 外观与字体 使用ray.tune进行自动调整超参数 使用Docker(MinIO)和Caddy创建图床服务 AI系统攻击手段(简要概述) RAG预处理增强:让Fastgpt/Dify召回更多东西 将PDF知识图谱化:graphrag+Doc2X+DeepSeek 如虎添翼:为gpt_academic配置searxng搜索 包管理工具UV使用指南:全面替代conda 折腾杂谈:运用Dify+xinference+ollama构建知识库 Ollama跨平台性能比拼:Windows遥遥落后 折腾杂谈:部署一个网页在线状态面板/反代切换到Caddy 笔记软件的最终选择:Obsidian + Self-hosted LiveSync 配置DOSBox以及其窗口大小 折腾杂谈:部署Alist并整合/服务器优化 在Linux上交叉编译出Windows可执行程序 利用MSYS2在windows上配置C/C++/openGL开发环境 强制对游戏应用FSR 折腾杂谈:Docker部署Rustdesk/切换网站框架 Speedometer 3.0分数测试(电子斗蛐蛐) 在Arch Linux下编译32位C程序出错 使用pelican以及nginx建立个人博客
在VSCode中配置多平台的C/C++语言支持
Menghuan1918 · 2024-04-17 · via Menghuan1918's Blog

这么多年的(插件)发展之后,实际上在VSCode中配置C/C++语言已经不是一件很困难的事情了,一般而言,所需要做的仅仅是安装C/C++插件,理论上其会自动检测编译器并生成响应的配置文件。

当然这只是理论,一旦涉及到跨平台同步(例如自带的设置同步,或者共用一个文件夹)就麻烦起来了,因为Linux和Windows的设置并不通用。此外微软开发的C/C++插件还存在一些问题,例如只会显示错误(Error)不会显示警告(Warning)等等,不过好在VSCode的众多插件提供了解决方案,其即能跨平台同步设置又补足了之前的缺点,同时在WindowsLinux下使用起来简单快捷。

前置环境配置

当然一切的前提是拥有一个C/C++编译器。对于Windows而言最简单的方法应该是使用MSYS2进行配置,详细参见这篇文章

随后还需要安装clangd语言服务器协议以提供更好的语法检查。为了避免找不到路径的尴尬情况,不要使用VSCode的clangd插件提供的一件安装服务

对于MSYS2包,可以在这个网站搜索

Arch Linux

sudo pacman -Syu
sudo pacman -S gcc
sudo pacman -S gdb
sudo pacman -S clang

Ubuntu

sudo apt update
sudo apt install gcc
sudo apt install gdb
sudo apt install clangd

Windows

# 确保你已经配置了MSYS2
pacman -Syu
pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-clang-tools-extra
pacman -S mingw-w64-x86_64-gdb

VSCode中配置

安装以下插件:

C/C++ Extension Pack

C/C++ Compile Run

clangd

你也可以使用ctrl+p快捷键呼出快速命令窗口使用以下命令安装:

ext install ms-vscode.cpptools-extension-pack

ext install danielpinto8zz6.c-cpp-compile-run

ext install llvm-vs-code-extensions.vscode-clangd

随后你应该能看到来自插件clangd的提示,选择禁用来自微软C/C++插件的语言服务。否则在语法补全或者查看变量/函数类型等等时会同时看到来自这两个插件的提示。

选择左边那个
选择左边那个

对于C/C++ Compile Run插件理论上不需要进行任何配置,由于其编译依然是调用gcc或者g++进行编译,而前文对于Windows中MSYS2安装时已经配置好了环境变量。不过你也可以在额外设置一些编译的标识。

当然这个标识不是跨平台的,记得取消同步这个设置
当然这个标识不是跨平台的,记得取消同步这个设置

C/C++ Extension Pack插件是用来对C/C++调试支持的,不能删掉(不止有语法高亮的功能)。

效果

当然这儿还额外使用了一个插件Error Lens来将警告和错误直接显示在编辑器中。

在Linux下查看警告并运行
在Linux下查看警告并运行
在Windows下进行调试
在Windows下进行调试
Windows下识别通过MSYS2安装的库
Windows下识别通过MSYS2安装的库

至此,就已经配置好了有语法警告提示,能在多平台上开箱即用简单快捷的VSCode了!