WSL2 上的 C++ Visual Studio makefile 项目

问题描述 投票:0回答:1

我有一个 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 项目?

c++ visual-studio makefile windows-subsystem-for-linux
1个回答
0
投票

是的,这是可能的。我刚刚为自己解决了它。 (这个答案可能会迟到,但我在试图解决同样的问题时偶然发现了这个问题。)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”并安装它。

    • 在 Visual Studio 中,添加到 WSL 的连接:
    • 工具/选项/跨平台/连接管理器:使用我的 WSL/Linux 凭据添加到本地主机的连接。
  • 在 Linux 中,安装 gdb 和 ssh 包。

在 Visual Studio 中,通过 File/New/Project 创建一个新项目。 (新可用的)选项之一应该是“Makefile 项目(带上你自己的构建系统以在 Linux 上构建)”,选择它。默认情况下,创建的解决方案位于您的 Windows 配置文件目录中。它应该包含一个空的 Linux 项目。作为到目前为止一切正确的线索,空项目的名称应该附加 (Linux),并且“调试目标”应该是新添加的“本地主机 (x64)”连接(通常是“本地 Windows 调试器”)。

现在必须用 Linux 应用程序的详细信息填充空的 Linux 项目:

  • 打开Linux工程的属性(只是说清楚,不是解决方案),适当修改属性。这些是我设置的:

    • 通用/远程构建根目录。设置为应用程序的 Linux 根路径,例如~/path/to/appDir.
    • 一般/远程项目根目录。我清除了这个。
    • 通用/远程部署目录。与 RPRD 串联,只需设置为 $(RemoteRootDir)。
    • 调试/程序,可执行文件的路径,例如~/path/to/appDir/relativeDir/app.
    • 调试/程序参数,设置口味。
    • 调试/工作目录,运行应用程序的 cwd。
  • 通过右键单击它并选择添加/现有项目,将源文件添加到空项目。这些是 Linux 文件,Linux 发行版应该直接在文件资源管理器的桌面下找到,从那里找到应用程序的文件。 Visual Studio 的痛苦在于一次只能添加一个目录,但是您希望在调试器中检查的所有源文件都必须以这种方式添加。使用本地调试器时,似乎无法自动找到文件。

就是这样,现在可以选择断点,按 F5,应用程序将在调试器中启动。

最后,如果我错过了一步,我深表歉意(我希望不会)。在我开始工作之前,我正在尝试其他各种事情。

© www.soinside.com 2019 - 2024. All rights reserved.