Visual Studio中Linux开发头文件intellisense问题的解决办法

文章目录

前言

最近在用我心爱的Visual Studio配合WSL2做一些Linux开发,但是有一个问题,就是当我#include <sys/socket.h>,会提示找不到文件

我尝试了各种姿势,包括修改CMakeSettings.json下的remoteCopyAdditionalIncludeDirectories条目、SSH到WSL然后拉取远程标头,都没有卵用,这期间我在MSDN官方文档、各种简中博客、StackOverflow上各种搜寻均未果,人都要崩溃了,最后我终于找到一条不那么优雅的方式解决问题,那就是直接复制。

个人环境

Visual Studio 2022 preview

WSL2

SSH到WSL

这一步是为了拉取WSL上的include,理论上来讲直接跳过这一步,宿主机访问WSL的include目录手动复制也是可以的,这里展示一下SSH的方式。首先我们在WSL上开启SSH功能

sh 复制代码
sudo apt install openssh-server
sudo vim /etc/ssh/sshd_config # 编辑

加入两行:

sh 复制代码
Port 22
PasswordAuthentication yes

然后重启SSH服务

sh 复制代码
sudo service ssh --full-restart

然后ipconfig查看wsl的IP,inet就是主机名

在VS的工具 > 选项 > 跨平台里点添加,SSH连接

然后在远程标头intellisense管理器里选中刚刚的连接,点击下载。

复制文件

然后点浏览,把x86_64-linux-gnu复制到VS的linux的include目录里,路径如图,对应我的路径做修改就行了

然后复制这个gnu文件夹下的所有文件,复制到这个地方,重复的我直接跳过

然后回到VS,项目 > 重新扫描解决方案

然后就可以看到头文件成功intellisense了,感恩!

后记

这次算是把我折腾惨了,全网基本只有VSCode的讨论,VS的讨论寥寥无几,一搜还很容易搜到VSCode。。文中的这种解决方案显然是很不优雅的,理论上来讲VS是提供了远程拉取标头用于intellisense的,比如改Cmakesettings之类的,不知道为什么我就是用不了。。。合理怀疑是BUG,如果有更好的方法欢迎给我留言。

相关推荐
潘正翔5 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
weigangwin5 小时前
agent-workspace-linux 不是远程桌面:Linux AI 工作区的隔离边界验收
linux·xvfb·mcp·桌面隔离·权限边界·bubblewrap·agent-workspace
Dovis(誓平步青云)7 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
Java小白笔记7 小时前
Docker 安装配置完全指南:MacOS 、Windows、Linux环境下的安装、配置与验证
linux·macos·docker
qetfw9 小时前
CentOS 7 搭建 LDAP 目录服务
linux·运维·centos
ALINX技术博客10 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统进阶-PS DMA
linux·fpga开发
IT方大同10 小时前
linux简介
linux·运维·服务器
mounter62511 小时前
从内存隔离到运行时防线:透视 Linux 内核安全强化的博弈与演进
linux·网络·安全·linux kernel·kernel
微道道12 小时前
Linux盒子局域网内使用 .local 域名访问,告别IP变化烦恼
linux·运维·服务器·hermes
Yolanda9412 小时前
【编程工具】关于IDEA的Mark Directory as操作的一点探索记录
java·ide·intellij-idea