WebAssembly 演示指南因缺少文件而失败

WebAssembly demo guide fails due missing files

按照开发人员指南的步骤,我在 MAC 上失败了。

http://webassembly.org/getting-started/developers-guide/

我有一个干净的 mac 安装 10.11.6 (15G31) 这是日志。


    Mac-MBP:emsdk_portable wasm$ ./emsdk 激活 clang-incoming-64bit emscripten-incoming-64bit sdk-incoming-64bit
    将 .emscripten 配置文件写入用户主目录 /Users/wasm/
    Emscripten 配置文件 /Users/wasm/.emscripten 已被重写为以下内容:

    进口 os
    LLVM_ROOT='/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin'
    NODE_JS='/Users/wasm/repo/webassembly/emsdk_portable/node/4.1.1_64bit/bin/node'
    EMSCRIPTEN_ROOT='/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming'
    EMSCRIPTEN_NATIVE_OPTIMIZER='/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming_64bit_optimizer/optimizer'
    SPIDERMONKEY_ENGINE = ''
    V8_ENGINE = ''
    TEMP_DIR = '/var/folders/wk/mngy_vmn0xs6j32tm53vvg7m0000gn/T'
    COMPILER_ENGINE = NODE_JS
    JS_ENGINES = [NODE_JS]

    要从命令行方便地访问选定的工具集,请考虑将以下目录添加到 PATH,或调用 'source ./emsdk_env.sh' 为您执行此操作。

       /Users/wasm/repo/webassembly/emsdk_portable:/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin:/Users/wasm/ repo/webassembly/emsdk_portable/node/4.1.1_64bit/bin:/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming
    Mac-MBP:emsdk_portable wasm$ 来源 ./emsdk_env.sh
    将目录添加到 PATH:
    路径 += /Users/wasm/repo/webassembly/emsdk_portable
    路径 += /Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin
    路径 += /Users/wasm/repo/webassembly/emsdk_portable/node/4.1.1_64bit/bin
    路径 += /Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming

    设置环境变量:
    EM_CONFIG = /Users/wasm/.emscripten
    EMSCRIPTEN = /Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming

    Mac-MBP:emsdk_portable wasm$ cd ..
    Mac-MBP:webassembly wasm$ emmc --version
    -bash: emmc: 找不到命令
    Mac-MBP:webassembly wasm$ emcc --version
    INFO:root:generating 系统资产:is_vanilla.txt...(这将缓存在“/Users/wasm/.emscripten_cache/is_vanilla.txt”中以供后续构建)
    INFO:root:-好的
    emcc(Emscripten gcc/clang-like 替换)1.36.14(提交 ca2685c89546ce5f7c01e1bc769b7d2a401093dc)
    版权所有 (C) 2014 Emscripten 作者(参见 AUTHORS.txt)
    这是 MIT 许可证下的免费开源软件。
    没有保修;甚至不是为了特定目的的适销性或适用性。

    Mac-MBP:webassembly wasm$
    Mac-MBP:webassembly wasm$ mkdir 你好
    Mac-MBP:webassembly wasm$ cd 你好
    Mac-MBP:你好 wasm$ echo '#include ' > hello.c
    Mac-MBP:hello wasm$ echo 'int main(int argc, char ** argv) {' >> hello.c
    Mac-MBP:hello wasm$ echo 'printf("Hello, world!\n");' >> hello.c
    Mac-MBP:hello wasm$ echo '}' >> hello.c
    Mac-MBP:你好 wasm$ emcc hello.c -s WASM=1 -o hello.html
    INFO:root:(Emscripten: 运行宁完整性检查)
    WARNING:root:retrieving 端口:来自 https://github.com/WebAssembly/binaryen/archive/version_21.zip 的二进制文件
    WARNING:root:unpacking 端口:binaryen
    INFO:root:generating端口:binaryen_tag_version_21.txt...(这将缓存在“/Users/wasm/.emscripten_cache/asmjs/binaryen_tag_version_21.txt”中以供后续构建)
    INFO:root:building port: binaryen
    -- C 编译器标识为 Clang 3.9.0
    -- CXX编译器标识为Clang 3.9.0
    -- 检查工作的 C 编译器:/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang
    -- 检查工作的 C 编译器:/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang -- 工作
    -- 检测 C 编译器 ABI 信息
    -- 检测 C 编译器 ABI 信息 - 完成
    -- 检查工作的 CXX 编译器:/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang++
    -- 检查工作的 CXX 编译器:/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang++ -- 工作
    -- 检测 CXX 编译器 ABI 信息
    -- 检测 CXX 编译器 ABI 信息 - 完成
    -- 寻找 pthread.h
    -- 寻找 pthread.h - 找到
    -- 寻找 pthread_create
    -- 寻找 pthread_create - 找到
    -- 找到的线程:TRUE
    -- 使用 -std=c++11 构建
    -- 使用 -msse2 构建
    -- 使用 -mfpmath=sse 构建
    -- 使用 -Wall 构建
    -- 使用 -Werror 构建
    -- 使用 -Wextra 构建
    -- 使用 -Wno-unused-parameter 构建
    -- 使用 -fno-omit-frame-pointer 构建
    -- 使用 -fPIC 构建
    -- 使用 -O2 构建
    -- 使用 -UNDEBUG 构建
    -- 配置完成
    CMake 警告(开发):
      未设置策略 CMP0042:默认启用 MACOSX_RPATH。 运行“cmake
      --help-policy CMP0042" 获取策略详细信息。使用 cmake_policy 命令来
      设置策略并抑制此警告。

      MACOSX_RPATH 未指定用于以下目标:

       二进制

    此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。

    -- 生成完成
    -- 构建文件已写入:/Users/wasm/.emscripten_ports/binaryen/binaryen-version_21
    扫描目标wasm的依赖
    扫描目标asmjs的依赖
    扫描目标支持的依赖关系
    目标遍历的扫描依赖
    [ 1%] 构建 CXX 对象 src/support/CMakeFiles/support.dir/archive.cpp.o
    [ 2%] 构建 CXX 对象 src/asmjs/CMakeFiles/asmjs.dir/asm_v_wasm.cpp.o
    [ 4%] 构建 CXX 对象 src/wasm/CMakeFiles/wasm.dir/wasm.cpp.o
    在 /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/support/archive.cpp:17 包含的文件中:
    /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/support/archive.h:27:10: 致命错误: 'cstdint' 找不到文件
    在 /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/asmjs/asm_v_wasm.cpp:17 包含的文件中:
    在 /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/asm_v_wasm.h:20 包含的文件中:
    /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/mixed_arena.h:20:10: 致命错误: 'atomic' 找不到文件
    #包括
             ^
    #包括
             ^
    在 /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/wasm/wasm.cpp:17 包含的文件中:
    /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/wasm.h:46:10: 致命错误: 'cassert' 找不到文件
    #包括
             ^
    [ 5%] 构建 CXX 对象 src/passes/CMakeFiles/passes.dir/pass.cpp.o
    /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/passes/pass.cpp:17:10: 致命错误: 'chrono' 找不到文件
    #包括
             ^
    产生 1 个错误。
    产生 1 个错误。
    make[2]: *** [src/support/CMakeFiles/support.dir/archive.cpp.o] 错误 1
    make[1]: *** [src/support/CMakeFiles/support.dir/all] 错误2make[2]:
    *** [src/asmjs/CMakeFiles/asmjs.dir/asm_v_wasm.cpp.o] 错误 1
    make[1]: *** 等待未完成的工作....
    make[1]: *** [src/asmjs/CMakeFiles/asmjs.dir/all] 错误2
    [ 8%] 构建 CXX 对象 src/passes/CMakeFiles/passes.dir/CoalesceLocals.cpp.o
    [ 8%] 构建 CXX 对象 src/wasm/CMakeFiles/wasm.dir/wasm-binary.cpp.o
    产生 1 个错误。
    make[2]: *** [src/wasm/CMakeFiles/wasm.dir/wasm.cpp.o] 错误 1
    make[2]: *** 等待未完成的工作....
    在 /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/wasm/wasm-binary.cpp:17 包含的文件中:
    /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/wasm-binary.h:24:10: 致命错误: 'cassert' 找不到文件
    #包括
             ^
    /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/passes/CoalesceLocals.cpp:25:10: 致命错误: 'algorithm' 找不到文件
    #包括
             ^
    [ 10%] 构建 CXX 对象 src/passes/CMakeFiles/passes.dir/CodePushing.cpp.o
    产生 1 个错误。
    make[2]: *** [src/passes/CMakeFiles/passes.dir/pass.cpp.o] 错误 1
    make[2]: *** 等待未完成的工作....
    在 /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/passes/CodePushing.cpp:22 包含的文件中:
    /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/wasm.h:46:10: 致命错误: 'cassert' 找不到文件
    #包括
             ^
    产生 1 个错误。
    make[2]: *** [src/passes/CMakeFiles/passes.dir/CoalesceLocals.cpp.o] 错误 1
    产生 1 个错误。
    make[2]: *** [src/passes/CMakeFiles/passes.dir/CodePushing.cpp.o] 错误 1
    make[1]: *** [src/passes/CMakeFiles/passes.dir/all] 错误 2
    产生 1 个错误。
    make[2]: *** [src/wasm/CMakeFiles/wasm.dir/wasm-binary.cpp.o] 错误1
    make[1]: *** [src/wasm/CMakeFiles/wasm.dir/all] 错误2
    make: *** [all] 错误 2
    回溯(most 最近通话最后):
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc”,第 13 行,在
        emcc.run()
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc.py”,第 1334 行,在 运行
        compile_source_file(我, input_file)
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc.py”,第 1323 行,在 compile_source_file
        args = get_bitcode_args([input_file]) + ['-emit-llvm', '-c', '-o', output_file]
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc.py”,第 1306 行,在 get_bitcode_args
        args = system_libs.process_args(args, shared.Settings)
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/system_libs.py”,第 636 行,在 process_args
        args = port.process_args(端口、args、设置、共享)
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/ports/binaryen.py”,第 34 行,在 process_args
        获取(端口、设置、共享)
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/ports/binaryen.py”,第 29 行,在 get
        return [shared.Cache.get('binaryen_tag_' + TAG, 创建, what='port', extension='.txt')]
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/cache.py”,第 95 行,在 get
        温度=创造者()
      创建文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/ports/binaryen.py”,第 24 行
        ports.build_native(os.path.join(ports.get_dir(), 'binaryen', 'binaryen-' + TAG))
      文件“/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/system_libs.py”,第 607 行,在 build_native
        subprocess.check_call(['cmake', '--build', '.'] + make_args, env=env)
      文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第 540 行,在 check_call 中
        引发 CalledProcessError(retcode,cmd)
    subprocess.CalledProcessError: 命令'['cmake', '--build', '.', '--', '-j', '4']' returned 非零退出状态 2
    Mac-MBP:你好 wasm$ emcc hello.c -s WASM=1 -o hello.htmlc
    Mac-MBP:你好 wasm$ whi
    哪个同时
    Mac-MBP:你好 wasm$ whi
    哪个同时
    Mac-MBP:你好 wasm$ 哪个 emcc
    /Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc
    Mac-MBP:你好 wasm$
    Mac-MBP:你好 wasm$ clang -v
    clang 版本 3.9.0 (https://github.com/kripken/emscripten-fastcomp-clang/ b6ea91778b2b30e6746f2a5f2baba463948729a4) (https://github.com/kripken/emscripten-fastcomp/ dfcb07a871addf339ffac17e606e16e97e8c5f71): 361.34 .14)
    目标:x86_64-apple-darwin15.6.0
    线程模型:posix
    安装目录:/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin
    Mac-MBP:你好 wasm$

看起来你正在点击 this bug

解决问题的建议如下: