我们在日常的linux环境开发中,为了提高开发的效率,往往有的时候会在windows环境下写代码,然后在linux环境下执行我们的程序,但是今天在用vs2019连接linux并在vs2019下写代码时加入了mysql的头文件,发现系统报错:无法打开源文件"mysql/mysql.h",在我经过检查之后确保我的乌班图是装了mysqlclient了的,而且vs2019也做了库依赖项的链接,如下图:
但是我的vs2019还给我报了一堆的错误信息,看着下面一堆的报错,让我着实有点儿mb
经过我翻阅很多的资料和向相关的大佬请教以后才发现了其中的猫腻,废话不多说,下面我再带大家粗略的了解一下其中的缘由,避免有的小伙伴跟我一样踩同样的坑。
我们可以看到下面这张图,这是我项目名称下的外部依赖项,是从linux 下同步过来的,
外部依赖项里面有很多的头文件,我们随意选取一个文件,将其完整的路径复制,然后再windows中打开文件夹,将路径粘贴到搜索框,进入到\usr\include,后面的先删除,我们只需要进入到\usr\include里即可,因为mysql的头文件一般都是安装在/usr/include/下面的,而vs2019里面的外部依赖项又是从我们的linux下的/usr/include下面同步过来的。
进入到\usr\include内部以后我们再进入到我们的linux下的/usr/include/,如下图:
此时我们会惊奇的发现,/usr/include中有mysql,而我们的vs2019从linux相同路径下同步过来的头文件里竟然找不到mysql,所以再vs中自然是要不错(找不到外部依赖)
那么这个问题怎么解决呢?
解决方案:
1 我们再linux的/usr/include下执行 tar -zcvf mysql.tgz mysql(超级用户权限)将/usr/include/下的mysql打包
执行ls发现/usr/include/下多了个mysql.tgz
2.执行 :cp mysql.gz /home/zhangfeng/将mysql.tgz拷贝到/home/zhangfeng目录下(注意:zhangfeng是我linux虚拟机的用户名,用户名根据自己的写就行)
3. 使用共享文件的方式(前提得安装samba服务器,不懂的小伙伴可以私我哦)访问/home/zhangfeng/
点击回车后发现share文件夹里面多了mysql.tgz压缩包,
4. 我们将这个压缩包复制到我们一开始打开的那个\usr\include路径下(该路径下的所有文件由vs2019从linux/usr/include同步过来)
将其解压 ,此时该文件夹下多了一个名为:mysql的子文件夹
此时这一步完成以后我们先关闭我们的vs2019的项目,重新打开,发现讲过一番的骚操作mysql/mysql.h的报错全部消失,问题得以解决。
在此运行项目发现结果相当的nice...
好了,我得分享就到这里了,有说的不清楚或者不准确的地方,各位小伙伴可以再下方留言,我们一起学习一起讨论哦!