我正在尝试使用 VS2019 为 linux 开发 C 代码。
我发现虽然可以找到许多 Linux 标头(例如 sys/types.h 和 sched.h),但找不到其他标头,例如 sys/syscall.h 和 fcntl.h。
我可以看到它在本地 linux 平台目录中有许多头文件的本地副本,例如 stdint.h ...我可以从目标机器上剪切并粘贴缺少的头文件吗?
我宁愿怀疑如果缺少诸如 unistd.h 之类的常见标头是有原因的,我不想把事情搞砸!
我正在尝试使用 VS2019 为 linux 开发 C 代码。
我发现虽然可以找到许多 Linux 标头(例如 sys/types.h 和 sched.h),但找不到其他标头,例如 sys/syscall.h 和 fcntl.h。
我可以看到它在本地 linux 平台目录中有许多头文件的本地副本,例如 stdint.h ...我可以从目标机器上剪切并粘贴缺少的头文件吗?
我宁愿怀疑如果缺少诸如 unistd.h 之类的常见标头是有原因的,我不想把事情搞砸!
来自微软的文档:
默认情况下,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 在哪里可以找到刚刚复制的其他包含文件。