VS2022跨平台开发找不到linux下的头文件

VS2022跨平台开发找不到linux下的头文件

使用vs2022跨平台开发:

#include <iostream>
#include <netinet\in.h>

using namespace std;

int main()
{
    cout << "hello world" << endl;
}

在vs上,代码高亮没有问题,但是提示找不到netinet\in.h头文件。

解决方法:修改包含路径里的斜杠。左斜杠改成右斜杠。【Linux使用右斜杠分割路径】

#include <netinet/in.h>

关联的注意点:
1、vs的工具、选项、跨平台、连接管理器、远程表头IntelliSense 管理器:负责将远程服务器上的头文件复制到本地,从而提供给vs,用于vs本地的代码语法高亮。
更新:可以重新复制一遍头文件到本地缓存。
浏览:可以查看保存在本地的头文件缓存,我的缓存地址是
“C:\Users*****\AppData\Local\Microsoft\Linux\HeaderCache\1.0-1008359268\usr”,可以看到这个目录下有usr文件,其中包含了linux下的通用头文件。

我这的缓存,能够找到in.h文件,这就是为啥vs的语法高亮没有问题。

2、vs编译,是将本地源文件复制到远程linux环境上,查看gcc的默认include路径:
#gcc
gcc -print-prog-name=cc1plus -v

#g++
g++ -print-prog-name=cc1plus -v

我这里的Linux环境默认包含了/user/include,里面也有in.h文件。


版权声明:本文为sunnyfulin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。