Jon*_*Jon 5 msbuild bash visual-studio windows-subsystem-for-linux
我最近开始使用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的开发环境.
小智 1
您必须这样做:
Nmake
不是 64 位应用程序,因此当它尝试使用 Windows 实用程序和 system32 时,WoW64 会诱骗它在不同的位置进行查找。
从 32 位应用程序启动它的方法是:
%windir%\sysnative\bash.exe
Run Code Online (Sandbox Code Playgroud)
但是,您的命令也是格式错误的。你需要这样做:
%windir%\sysnative\bash.exe -c "sh build.sh"
Run Code Online (Sandbox Code Playgroud)
或者可能
%windir%\sysnative\bash.exe -c "./build.sh"
Run Code Online (Sandbox Code Playgroud)
如果 DriveFS 权限允许执行。
否则它将尝试build.sh
在您的 linux 用户的 $PATH 中作为命令执行。
来源: https: //github.com/Microsoft/BashOnWindows/issues/870