从Visual Studio 2015开始基于WSL bash的构建

问题描述 投票:5回答:2

我最近开始使用Windows子系统Linux(WSL)来查看我的Linux Makefile和基于arm-none-eabi-gcc的微控制器项目是否会在Windows中“本地”构建。令我惊讶的是,工具链和基于Linux的开发工具首先安装并完美运行,无需对Makefile进行任何修改。

这让我想到尝试使用IDE功能在Visual Studio中进行所有代码编辑,同时在WSL中提供的Linux和bash环境中进行实际构建。

不幸的是,在我的Visual Studio项目的NMake选项中指定“构建命令行”时,放入"C:\Windows\System32\bash.exe build.sh"不起作用,因为:

'C:\Windows\System32\bash.exe' is not recognized as an internal or external command, operable program or batch file.

这对我来说很奇怪,因为我指定了完整路径并且找不到WSL bash可执行文件,并且还尝试将其添加为“外部工具”似乎不起作用,因为可执行文件未显示在选择窗口,尽管能够在同一目录中看到其他可执行文件。

一些非主题观点:如果Microsoft可以使Visual Studio和WSL无缝协同工作,那么我可能会从我的Ubuntu虚拟机设置切换到基于WSL的开发环境。

bash visual-studio msbuild windows-subsystem-for-linux
2个回答
1
投票

这是你必须要做的:

Nmake不是64位应用程序,因此当它尝试使用Windows实用程序和system32时,WoW64会将其用于查看其他位置。

从32位应用程序启动它的方式是:

%windir%\sysnative\bash.exe

但是,您的命令也是格式错误的。你需要这样做:

%windir%\sysnative\bash.exe -c "sh build.sh"

或者可能

%windir%\sysnative\bash.exe -c "./build.sh"

如果DriveFS权限允许执行。

否则它将尝试在你的linux用户的$ PATH中执行build.sh作为命令。

资料来源:https://github.com/Microsoft/BashOnWindows/issues/870


0
投票

这就是我在Build Command Line设置中的内容。它工作正常。

start /WAIT %windir%\sysnative\bash.exe -c "cd /mnt/d/Projects/IoT/ESP8266/;./gen.sh -m DEBUG; read -n 1; exit;"
© www.soinside.com 2019 - 2024. All rights reserved.