我使用Linux的Windows子系统(Ubuntu)整理并运行了一个hello world程序Web Assembly。基本上遵循此处的入门页面:https://webassembly.org/getting-started/developers-guide/
我使用以下命令成功运行了该程序:
emrun --browser "/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe" --verbose --port 8081 hello.html
当我在命令行中运行此脚本时,一切都很好,但当我创建了一个名为start.sh的脚本时,它看起来像这样:
#!/usr/bin/env bash
echo "Starting hello world in chrome."
emrun --browser "/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe" --verbose --port 8081 hello.html
我得到标题为“ emrun:找不到命令”的错误。
第一行“#!/ usr / bin / env bash”是从Wasm SDK中的一个.sh文件复制而来的,所以我认为这是对的吗? Ive还尝试使用Windows 10提供的编辑环境变量将Wasm SDK添加到$ PATH,但是没有运气。
我没有大量的批处理脚本经验,并且我不确定如何从此处继续。.我感觉我缺少一些明显的东西,但是我无法弄清控制台和脚本文件之间的区别是什么?
感谢您抽出宝贵的时间阅读本文章。
答案 0 :(得分:0)
砸了一些头后自己找到了答案!多亏了我见过的所有模因,我才能与您分享答案。
我编辑了脚本,因此看起来像这样:
#!/usr/bin/env bash
cd ..
cd Wasm/emsdk
source ./emsdk_env.sh --build=Release
cd ..
cd ..
cd hello
emcc hello.c -o hello.html
echo "Starting hello world in chrome."
emrun --browser "/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe" --verbose --port 8081 hello.html
现在运行“ $ sudo bash start.sh”会在控制台中显示以下消息:
Adding directories to PATH:
PATH += /home/elaurora/Wasm/emsdk
PATH += /home/elaurora/Wasm/emsdk/fastcomp/emscripten
PATH += /home/elaurora/Wasm/emsdk/node/12.9.1_64bit/bin
Setting environment variables:
EMSDK = /home/elaurora/Wasm/emsdk
EM_CONFIG = /home/elaurora/.emscripten
EMSDK_NODE = /home/elaurora/Wasm/emsdk/node/12.9.1_64bit/bin/node
Starting hello world in chrome.
... then a bunch of unrelated stuff regarding the server that was just started
为此,当然,您必须编辑每个路径,以使行
source ./emsdk_env.sh --build=Release
在emsdk文件夹中运行。
可能有更好的方法来执行此操作,也许涉及永久设置正确的PATH变量以具有上述值的方法,但是不幸的是,我不确定如何执行此操作。 尽管如此,此解决方案仍对我有效。