解决vs2019下进行跨平台开发,出现引用的头文件显示无法打开,但是可以通过编译的问题

问题描述

本人在进行Linux跨平台开发的时候,由于云服务器是刚配置的,就直接与vs2019进行了ssh连接。所以当时的Linux系统上还没有安装开发用到的一些头文件,后来要进行MySQL数据库方面的开发,在Linux服务器上已经安装好了,但是在vs的项目中引用头文件的时候出现源文件无法打开的问题,但是在引用头文件之后代码的编译是可以通过的。

具体问题如下:

vs2019如何与Linux通过ssh连接进行项目开发可以参考博客:https://blog.csdn.net/weixin_64647426/article/details/131341970?spm=1001.2014.3001.5501

不说废话,我们来分析一下报错的原因。以及提供给大家VS自带的解决方案

原因

这个问题是由于你的Linux系统上虽然开发和编译的环境都已经配置好了,但是你的Windows上跨平台开发的vs并不知道现在你是什么情况,vs只会在你第一次连接到Linux系统的时候,会把你Linux上的一些开发用到的头文件、库文件等等一系列的东西在你的Windows电脑上复制一份出来

复制文件的位置可以在“项目资源管理器”的外部依赖项中看到,随便打开一个文件然后打开文件的所在位置就可以看到VS为你在Linux系统上复制的所有开发相关的文件

我们可以看到,这个就是vs为我们从Linux系统上复制过来开发所用的文件

我们来找一下为什么VS说mysql.h头文件打开失败的原因

我们可以看到在当前Windows这个文件夹里面确实没有mysql这个文件夹,但是在我们的Linux系统上是存在mysql这个目录的

所以VS报错的原因就是在当前这个Windows的文件夹里面找不到这个mysql.h的头文件和mysql这个文件夹

好了我们现在知道了原因,下一步就是去解决这个问题

解决方法

当我遇到这个问题的时候,也是比较蒙的一个状态,就去网上找了一下这个问题的解决方案,但是大多数的解决方案都是让你从Linux上把这个东西拷贝到VS在Windows上复制的这个文件夹里面,我感觉这个方法还是比较麻烦的

所以我就在想,VS的设计团队,也一定会想到有这个问题的发生,所以我就准备在VS的设置选项里面找找答案

果真VS确实考虑到了这一点,就在VS跨平台的选项里面就提供了这种问题的解决办法

就在跨平台→连接管理器→远程标头IntelliSense管理器下面就有解决方案

我们可以看到,VS给我们提供了一个更新的选项,这个更新就是用来更新文件夹下的文件的

点击对应的Linux系统的IP地址,再点击更新

出现下面的对话框,就表示正在更新

更新完成之后,我们就会在Windows那个文件夹下,看到mysql的文件夹了,并且时间也是和Linux上目录的时间可以对上的

这时头文件的报错也没有了,这个问题就解决了

现在再进行MySQL数据库开发的时候,就会有类型和方法的提示了

到这里vs进行跨平台开发,出现引用的头文件显示无法打开,但是可以通过编译的问题发生的原因和解决方法就介绍完了

感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!