1

我正在尝试使用 VS2019 为 linux 开发 C 代码。

我发现虽然可以找到许多 Linux 标头(例如 sys/types.h 和 sched.h),但找不到其他标头,例如 sys/syscall.h 和 fcntl.h。

我可以看到它在本地 linux 平台目录中有许多头文件的本地副本,例如 stdint.h ...我可以从目标机器上剪切并粘贴缺少的头文件吗?

我宁愿怀疑如果缺少诸如 unistd.h 之类的常见标头是有原因的,我不想把事情搞砸!

4

1 回答 1

5

来自微软的文档:

默认情况下,Visual Studio 不包含来自 Linux 计算机的任何系统级包含文件。例如,/usr/include 目录中的项目在 Visual Studio 中不存在。要获得完整的 IntelliSense 支持,您需要将这些文件复制到开发计算机上的某个位置,并将 Visual Studio 指向该位置。一种选择是使用 scp(安全复制)来复制文件。在 Windows 10 上,您可以使用 Windows 上的 Bash 来运行 scp。对于以前版本的 Windows,您可以使用 PSCP (PuTTY Secure Copy) 之类的东西。

您可以使用类似于以下的命令复制文件:

scp -r linux_username@remote_host:/usr/include 。

当然,将上面的 linux_username 和 remote_host 值替换为适合您自己环境的值。

复制文件后,使用项目属性中的 VC++ 目录项告诉 Visual Studio 在哪里可以找到刚刚复制的其他包含文件。

于 2019-02-22T13:48:05.147 回答