按照开发人员指南一步一步地在 MAC 上对我来说失败了。
http://webassembly.org/getting-started/developers-guide/
我有一个干净的 mac 安装10.11.6 (15G31),这里是日志。
Mac-MBP:emsdk_portable wasm$ ./emsdk activate clang-incoming-64bit emscripten-incoming-64bit sdk-incoming-64bit
将 .emscripten 配置文件写入用户主目录 /Users/wasm/
Emscripten 配置文件 /Users/wasm/.emscripten 已被改写为以下内容:
导入操作系统
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'
蜘蛛猴引擎 = ''
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:/用户/wasm/repo/webassembly/emsdk_portable/emscripten/incoming
Mac-MBP:emsdk_portable wasm$ source ./emsdk_env.sh
将目录添加到 PATH:
PATH += /Users/wasm/repo/webassembly/emsdk_portable
PATH += /Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin
PATH += /Users/wasm/repo/webassembly/emsdk_portable/node/4.1.1_64bit/bin
PATH += /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 system assets: is_vanilla.txt...(这将被缓存在“/Users/wasm/.emscripten_cache/is_vanilla.txt”中以供后续构建使用)
信息:根:-好的
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 hello
Mac-MBP:hello 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");' >> 你好.c
Mac-MBP:hello wasm$ echo '}' >> hello.c
Mac-MBP:hello wasm$ emcc hello.c -s WASM=1 -o hello.html
信息:根:(Emscripten:运行健全性检查)
警告:root:检索端口:来自 https://github.com/WebAssembly/binaryen/archive/version_21.zip 的 binaryen
警告:root:解压端口:binaryen
INFO:root:generating port: binaryen_tag_version_21.txt...(这将被缓存在“/Users/wasm/.emscripten_cache/asmjs/binaryen_tag_version_21.txt”中以供后续构建)
信息:根:构建端口: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:致命错误:找不到“原子”文件
#包括
^
#包括
^
在 /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:致命错误:找不到“算法”文件
#包括
^
[ 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: *** [全部] 错误 2
回溯(最近一次通话最后):
文件“/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(i, 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(端口,参数,设置,共享)
文件“/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, create, 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']'返回非零退出状态2
Mac-MBP:hello wasm$ emcc hello.c -s WASM=1 -o hello.htmlc
Mac-MBP:你好 wasm$ whi
其中,而
Mac-MBP:你好 wasm$ whi
其中,而
Mac-MBP:hello wasm$ which 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/dfcb07a871addf339ffac17e606e16e97e36.36414) (emscripten) (emscripten) )
目标:x86_64-apple-darwin15.6.0
线程模型:posix
安装目录:/Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin
Mac-MBP:你好 wasm$