我有一个 C++ 项目,我使用 makefile(由我编写,不是自动生成的)交叉编译。 我最近搬到了 WSL2 并且一直怀念我使用 Eclipse 的美好时光(Visual Studio Code 甚至不接近 Eclipse 可以做的事情)。
我决定试一试 Visual Studio,但我只能找到这篇关于 VS + WSL2 + cmake 的文章。 https://learn.microsoft.com/en-us/cpp/build/walkthrough-build-debug-wsl2?view=msvc-170
是否可以使用 Visual Studio 在 WSL2 下创建 C++ makefile 项目?
是的,这是可能的。我刚刚为自己解决了它。 (这个答案可能会迟到,但我在试图解决同样的问题时偶然发现了这个问题。)FWIW。我坚持解决它是因为Visual Studio Code可以调试远程应用程序,所以Visual Studio肯定可以...
我正在将 Visual Studio 2022 与 WSL2 和 Ubuntu 22.04 (jammy) 一起使用。
一些信息来自https://devblogs.microsoft.com/cppblog/targeting-windows-subsystem-for-linux-from-visual-studio/,这是旧的并且针对WSL1。尽管如此,其中一些仍然是相关的;他们只是忘记在 OP 提到的文档中保留此信息。
先决条件:
在 Visual Studio 中,确保安装了“使用 C++ 进行 Linux 开发”功能。如果没有,请运行“Visual Studio Installer”并安装它。
在 Linux 中,安装 gdb 和 ssh 包。
在 Visual Studio 中,通过 File/New/Project 创建一个新项目。 (新可用的)选项之一应该是“Makefile 项目(带上你自己的构建系统以在 Linux 上构建)”,选择它。默认情况下,创建的解决方案位于您的 Windows 配置文件目录中。它应该包含一个空的 Linux 项目。作为到目前为止一切正确的线索,空项目的名称应该附加 (Linux),并且“调试目标”应该是新添加的“本地主机 (x64)”连接(通常是“本地 Windows 调试器”)。
现在必须用 Linux 应用程序的详细信息填充空的 Linux 项目:
打开Linux工程的属性(只是说清楚,不是解决方案),适当修改属性。这些是我设置的:
通过右键单击它并选择添加/现有项目,将源文件添加到空项目。这些是 Linux 文件,Linux 发行版应该直接在文件资源管理器的桌面下找到,从那里找到应用程序的文件。 Visual Studio 的痛苦在于一次只能添加一个目录,但是您希望在调试器中检查的所有源文件都必须以这种方式添加。使用本地调试器时,似乎无法自动找到文件。
就是这样,现在可以选择断点,按 F5,应用程序将在调试器中启动。
最后,如果我错过了一步,我深表歉意(我希望不会)。在我开始工作之前,我正在尝试其他各种事情。