我正在尝试在 WSL Ubuntu 上的 VisualStudio2017 中远程构建 C++ helloworld。我按照 Goodner 在 MSDN 上概述的说明进行操作:
https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/ https://blogs.msdn.microsoft.com/vcblog/2017/04/11/linux-development-with-c-in-visual-studio/ https://blogs.msdn.microsoft.com/vcblog/2018/11/26/using-visual-studio-for-cross-platform-c-development-targeting-windows-and-linux/
对于 WSL 来说: https://docs.microsoft.com/en-us/windows/wsl/install-on-server
问题: Intellisense 找不到包含头文件,因此无法调试程序。不过,在 Linux 上构建成功,并且可以从 bash 运行。
我认为远程标头 IntelliSense 管理器应该可以解决这个问题,但它没有将标头下载到我的 Windows 标头缓存中
非常感谢有关如何在 WSL 上正确设置 VS2017 远程构建/调试以构建 C、C++ 和现有 Make 项目的任何帮助。
答案1
我使用 WSL Linux 实例中的实际标头作为我的 VisualStudio 项目的包含。可以读取它们……只是永远不要从 Windows 编辑它们。
以下是一些入门信息:$(UserProfile)\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\include
这也向我保证,正在编译的代码与智能感知正在使用的代码相同。
另一个提示...我实际上并不使用那个 HURKING LONG PATH..我将它连接到其他地方并使用更短的路径..这也使得切换发行版变得容易,而无需一遍又一遍地更改我的项目文件。
祝你好运!
答案2
我在 VS 2022 中使用 WSL2 时遇到了同样的问题。这对我有用。
转到项目 -> 单击重新扫描解决方案。
这会强制将 Linux 标头下载到 Windows 标头缓存中。