VSCode 无法跳转C语言函数定义和变量定义的解决方案(本地端+远程服务器端)

2023-11-05

前言

初次使用 VSCode 编辑代码时,估计有不少小伙伴遇到过点击函数或变量无法跳转到定义处,左侧大纲栏里也没有任何内容的情况,这是缺少 C/C++ 插件导致的。


1. 给本地端安装 C/C++ 插件

这一步很简单,只需要左侧工具栏点击扩展商店,然后在搜索框中搜索 “C/C++” ,然后直接安装 C/C++ 插件即可。

在这里插入图片描述

安装好 “C/C++” 插件后,就可以愉快地跳转到函数或变量的定义处了。


2. 给远程服务器端安装 C/C++ 插件

我使用 SSH 登录远程 Linux 服务器后,发现编辑代码是时候也是不能跳转到函数或变量定义处,点击左侧的扩展商店,发现通过 Romete-SSH 插件远程连接上服务器之后,会区分本地端已安装插件和远程端以安装插件,这时候我发现远程端已安装插件这一栏里面并没有 C/C++ 这一个插件,而本地端已安装一栏里面就有 C/C++ 插件。

这说明,如果只给本地端安装而不给远程端安装 C/C++ 插件,那么 VSCode 登录远程服务器端编辑代码时,是不会有代码跳转、编译、调试这些功能的,远程端要想拥有和本地端一样的功能,那么就要在远程端安装与本地端一样的插件。

在这里插入图片描述


在线安装插件

正常情况下,如果本地端已经安装了 C/C++ 插件,那么只需要轻轻点击一下 “在SSH:xxx中安装” 这个选项即可完成远程服务器端的相同插件安装。

在这里插入图片描述

然而,不巧的是,不管我怎么点击 “在SSH:xxx中安装” 这个选项,都没有一点反应,或者一直显示正在安装扩展,然后就没有然后。

有知道是什么原因的小伙伴,还请不吝赐教!


离线安装插件

既然在线安装不上,那就尝试离线安装。首先到插件下载中心,找到你想要的插件。

插件下载地址:https://marketplace.visualstudio.com/

在这里插入图片描述

搜索框中搜索 “C/C++” ,找到 C/C++ 插件,在右下角 “Download Extension” 选项中,找到你要下载的类型,例如我的服务器是 Linux 系统的,那我就选择 Linux x64 类型插件。

在这里插入图片描述

插件下载完成后,通过 FTP 工具上载到服务器,VSCode 在 linux 系统的插件一般安装在 ~/.vscode-server/extensions 路径下,所以我把下载好的 C/C++ 插件也放在这个路径里。

点击扩展商店右面那三个点的图标,选择 “从 VSIX 安装”:

在这里插入图片描述

然后在 ~/.vscode-server/extensions 路径里找到你下载的插件,直接点击即可安装,安装完成后会有提示让你重新加载 VSCode,这时候就表示插件安装成功了,直接重启 VSCode 即可。

在这里插入图片描述

重新启功 VSCode 后,在远程端已安装插件一栏里面,就看到了刚才安装的 C/C++ 插件了,这是后代码跳转功能已经可以正常使用了。

在这里插入图片描述


小结

在本地端安装 VSCode 插件时,会安装到本地端的路径上;在远程服务器端安装 VSCode 插件时,会安装到远程服务器的路径上,这一点在 VSCode 的官方文档里面有提到,感兴趣的小伙伴可以看看这个说明:

在这里插入图片描述

文档地址:https://code.visualstudio.com/api/advanced-topics/remote-extensions#architecture-and-extension-types

一般情况下,大家都是在本地端使用 VSCode 开发,插件都是安装到本地路径,要是哪天有用到 VSCode 登录到远程服务器开发时,别忘了也给远程服务器也安装相应的插件喔,这样才能有跟本地端使用 VSCode 编码的相同体验。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSCode 无法跳转C语言函数定义和变量定义的解决方案(本地端+远程服务器端) 的相关文章

  • C++ 模板中的名称查找

    我有一些 C 代码 如果没有 fpermissive 选项 就无法再编译 这是我无法分享的专有代码 但我认为我已经能够提取一个简单的测试用例来演示该问题 这是 g 的输出 template eg cpp In instantiation o
  • OpenCV Visual Studio ntdll.dll

    我尝试在 Visual Studio 2013 上使用 OpenCV 2 4 10 创建一个项目 但由于以下异常 到目前为止我运气不佳 请建议帮助 TIA letstryitonemoretime exe Win32 Loaded C Us
  • python:numpy 运行脚本两次

    当我将 numpy 导入到 python 脚本中时 该脚本会执行两次 有人可以告诉我如何阻止这种情况 因为我的脚本中的所有内容都需要两倍的时间 这是一个例子 usr bin python2 from numpy import print t
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次
  • 在桌面应用程序中,类库的连接字符串存储在哪里?我可以在app.config中使用吗?

    我是桌面应用程序开发的新手 目前正在使用分层架构 用户界面 DAL BLL 构建桌面应用程序 在 Web 开发中 我曾经将连接字符串存储在 web config 中 我的类库从那里访问它 请指导我在桌面应用程序中如何以及在何处存储 DAL
  • 使用静态类型代替变量

    当您的项目不使用命名空间时 有什么方法可以告诉编译器使用静态类型而不是变量吗 例如 我有一个名为 User 的类 它具有各种静态和非静态方法 假设调用了其中一个静态方法GetUser 我想称之为User GetUser 方法来自一个方法 该
  • 如何从 List 中的字符串中删除数字/数字?

    我有一个字符串列表 List
  • 使用 Selenium for C# 登录 Facebook

    我一直在使用 Selenium C 框架并尝试进行 facebook 登录 但没有任何运气 这是我到目前为止得到的 基于这篇文章 使用 Selenium 测试 Facebook Connect 应用程序 https stackoverflo
  • 'goto *foo' 其中 foo 不是指针。这是什么?

    我正在玩标签作为值 https gcc gnu org onlinedocs gcc Labels as Values html并最终得到这段代码 int foo 0 goto foo 我的 C C 经验告诉我 foo means dere
  • 获取给定EntityType的导航属性

    我在用VS2010 EF4 0 需要如下功能 private string GetNaviProps Type entityType eg typeof Employee NorthwindEntities en new Northwind
  • 从窗口内容截取屏幕截图(无边框)

    我正在寻找有关如何使用 C 将表单内容保存在位图中的解决方案 我已经尝试过使用 DrawToBitmap 但它捕获了所有带边框的窗口 这就是这段代码的结果 public static Bitmap TakeDialogScreenshot
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • Create CFrameWnd 给出了第一次机会异常——为什么?

    我正在尝试使用基于 CFrameWnd 的代码编写一个简单的 MFC 应用程序 该应用程序在可滚动窗口中绘制 下面的代码改编自 Prosise Programming Windows with MFC 第 2 版 第 89ff 页 当我在调
  • 如何用C++解析复杂的字符串?

    我试图弄清楚如何使用 解析这个字符串sstream 和C 其格式为 string int int 我需要能够将包含 IP 地址的字符串的第一部分分配给 std string 以下是该字符串的示例 std string 127 0 0 1 1
  • 简单的文档管理系统和API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • 实体框架代理创建

    我们可以通过使用来停止在上下文构造函数中创建代理 this Configuration ProxyCreationEnabled false 在 EF 4 1 中创建代理有哪些优点和缺点 代理对于两个功能是必需的 延迟加载 导航属性在第一次
  • 在代码中而不是 XAML 中呈现 UserControl

    我想用RenderTargetBitmap将 UserControl 呈现为位图 而无需为其编写 XAML 当我这样做时 我得到一张空白图像 我是否错过了关键的一步 ValTool Controls VideoFisheyeOverlayC
  • 致命错误 C1001:编译器中发生内部错误(编译器文件“msc1.cpp”,第 1325 行)

    当我编译代码时 错误指向以下类 该错误在两行上突出显示 如下所示 tm validFrom tm validUntil struct t SslCertData final struct t Contact TCHAR Organizati
  • 什么时候使用静态库需要头文件?

    如果我在 Linux 中用 C 创建一个静态库并生成 a 文件 我 或其他人 如何使用该库 例如 我的库定义了一个类 我认为仅仅提供 a 文件是不够的 还需要提供头文件 我如何知道 a 文件必须提供哪些头文件 例如 我是否需要提供我的库代码

随机推荐

  • JavaScript中的endsWith

    如何在JavaScript中检查字符串是否以特定字符结尾 示例 我有一个字符串 var str mystring 我想知道该字符串是否以 结尾 我该如何检查 JavaScript中是否有endsWith 方法 我有一个解决方案是获取字符串的
  • 嘴说手画一文搞懂Spark的Join

    Spark Sql的Join和关系型数据库Sql的Join有很多相同点 比如inner join left join right join full join 这是二者都有的概念 并且含义相同 但是 Spark Sql是分布式执行 面对的是
  • ADB命令开启和关闭飞行模式,两段式操作方式!!!!

    开启飞行模式 必须要先执行1 再执行2 执行1 adb shell settings put global airplane mode on 1 执行2 adb shell am broadcast a android intent act
  • Docker部署Elasticsearch集群

    编写docker compose yml version 3 7 services es01 image elasticsearch 7 10 1 container name es01 ports 9200 9200 9300 9300
  • dc-1 靶机渗透学习

    环境 Vmware 虚拟机软件 dc 1 靶机ip地址 192 168 202 130 kali攻击机ip地址 192 168 202 129 本次渗透过程kali攻击机和dc靶机都采取NAT模式 信息收集 首先用ipconfig查看当前k
  • 初始化k8s踩过的坑

    问题一 error execution phase preflight couldn t validate the identity of the API Server abort connecting 这个问题网上有很多的解决方法 大致有
  • 【OpenCV】分离多通道图像RGB的值

    原文地址 http blog csdn net xiaowei cqu article details 7558657 1 计算图像ROI区域RGB的平均值 cvAvg函数 2 通道分离 合并的时候要特别的注意 分离之后的图像时单通道的灰度
  • RabbitMQ:使用Java进行操作

    使用Java操作消息队列 现在我们来看看如何通过Java连接到RabbitMQ服务器并使用消息队列进行消息发送 这里一起讲解 包括Java基础版本和SpringBoot版本 首先我们使用最基本的Java客户端连接方式
  • shell脚本的发送消息

    我们可以利用 Linux 自带的 mesg 和 write 工具 向其它用户发送消息 需求 实现一个向某个用户快速发送消息的脚本 输入用户名作为第一个参数 后面直 接跟要发送的消息 脚本需要检测用户是否登录在系统中 是否打开消息功能 以及当
  • 基于 LLM 的知识图谱另类实践

    本文整理自社区用户陈卓见在 夜谈 LLM 主题分享上的演讲 主要包括以下内容 利用大模型构建知识图谱 利用大模型操作结构化数据 利用大模型使用工具 利用大模型构建知识图谱 上图是之前 我基于大语言模型构建知识图谱的成品图 主要是将金融相关的
  • Go交叉编译

    交叉编译是指在一个硬件平台生成另一个硬件平台的可执行文件 而Go提供了非常方便的交叉编译方式 如何编译 Go交叉编译 涉及到几个环境变量的设置 GOARCH GOOS和CGO ENABLED GOARCH 编译目标平台的硬件体系架构 amd
  • 单元测试框架-Junit

    JUnit作为Java单元测试中的首选框架 在Java开发中使用最为广泛 JUnit 在测试驱动的开发方面有很重要的发展 教程 jUnit 教程 w3cschool BeforeAll修饰的 可以作为整个Class的初始化操作 前置操作 J
  • IDEA的run maven方式启动

    安装jetty插件 1 找到Plugins 查找jetty插件 安装 IDEA Jetty Runner 安装好后重启IDEA 安装插件 Maven Helper 方法同Jetty pom xml添加
  • cocos笔记——如何读取json表

    创建json表 1 将所需数据录入excel表格 或其他可转换为json表的文档 2 复制表中需要的文字 用在线json表转换工具 如 在线json校验格式化工具 中的Excel转json功能 将表格转化为json表的格式 3 复制转化好的
  • Chrome/Edge/Firefox浏览器离线安装包下载地址总汇

    Google Chrome谷歌浏览器离完整离线安装包下载地址整理总汇 每次重装系统 都要为安装 Chrome 而烦恼 虽然现在可以直接从谷歌浏览器官网下载在线安装包进行安装 但是在线安装包安装的版本不可控 大概率是 x86 版本 而且在断网
  • maven切换镜像源

    今天像往常一样准备构建项目时报错 原因是中央仓库暂停更新 导致很多jar包都没有 1 打开settings xml文件 settings xml文件一般在maven的安装目录conf文件夹下 2 切换镜像源 定位到
  • Lecture 9

    绪论 这一章节介绍的是divide and conquer multiplication divide的意思是分开 conquer的意思是占据 控制 divide and conquer直译下来就是分开后控制 其实就是分而治之的意思 mul
  • 手动可视化裁剪点云 (附open3d python代码)

    有时候 我们想要在一个比较刁钻的角度截取点云 或者想要截取一个多边形区域的点云 用代码可能不是那么方便的截取 这个时候 还是可视化的裁剪比较方便简单 代码如下 coding utf 8 import numpy as np import c
  • radare2 使用记录

    radare2 使用记录 编译 调试分析 数据结构 rasm disasm analop 反汇编 cs disasm libarch 编译 radare2 UNIX like reverse engineering framework an
  • VSCode 无法跳转C语言函数定义和变量定义的解决方案(本地端+远程服务器端)

    文章目录 前言 1 给本地端安装 C C 插件 2 给远程服务器端安装 C C 插件 小结 前言 初次使用 VSCode 编辑代码时 估计有不少小伙伴遇到过点击函数或变量无法跳转到定义处 左侧大纲栏里也没有任何内容的情况 这是缺少 C C