我有一个C项目,我使用makefile(由我编写,而不是自动生成)交叉编译。我最近搬到了WSL2,并且一直在怀念我使用Eclipse的好日子(Visual Studio代码甚至不接近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项目?
1条答案
按热度按时间jtw3ybtb1#
是的,有可能。我刚刚为自己解决了它。(这个答案可能有点晚了,但我在试图解决同样的问题时偶然发现了这个问题。)FWIW。我坚持解决这个问题,因为Visual Studio Code可以调试远程应用程序,所以Visual Studio肯定也能。..
我正在使用Visual Studio 2022与WSL 2和Ubuntu 22。04(果酱)。
一些信息来自https://devblogs.microsoft.com/cppblog/targeting-windows-subsystem-for-linux-from-visual-studio/,它是旧的,针对WSL 1。尽管如此,其中一些仍然是相关的;他们只是忘记了在OP引用的文档中保留此信息。
先决条件:
sudo apt install gdb ssh net-tools
SSH:
sudo service ssh start
ssh <ip>
建立到WSL的ssh连接,其中通过在Linux上运行ifconfig发现'ip'。在Visual Studio中,通过File/New/Project创建一个新项目。其中一个(新可用的)选项应该是“Makefile Project(Bring your own build system to build on Linux)”,选择它。默认情况下,创建的解决方案位于Windows配置文件目录中。它应该包含一个空的Linux项目。作为到目前为止正确的线索,空项目的名称应该附加(Linux),“Debug target”应该是新添加的“localhost(x64)”连接(通常是“Local Windows Debugger”)。
现在,必须用Linux应用程序的详细信息填充空的Linux项目:
应该是这样的,现在可以选择断点,按F5,应用程序将在调试器中启动。
最后,如果我错过了一步,我道歉(我希望不是)。在我让它工作之前,我尝试了各种其他的东西。