C++ 由于缺少文件,WebAssembly演示指南失败
一步一步地遵循开发者指南,我在MAC上失败了 我有一个干净的mac安装C++ 由于缺少文件,WebAssembly演示指南失败,c++,emscripten,webassembly,C++,Emscripten,Webassembly,一步一步地遵循开发者指南,我在MAC上失败了 我有一个干净的mac安装10.11.6(15G31),这是日志 Mac-MBP:emsdk_portable wasm$ ./emsdk activate clang-incoming-64bit emscripten-incoming-64bit sdk-incoming-64bit Writing .emscripten configuration file to user home directory /Users/wasm/
10.11.6(15G31)
,这是日志
Mac-MBP:emsdk_portable wasm$ ./emsdk activate clang-incoming-64bit emscripten-incoming-64bit sdk-incoming-64bit
Writing .emscripten configuration file to user home directory /Users/wasm/
The Emscripten configuration file /Users/wasm/.emscripten has been rewritten with the following contents:
import 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]
To conveniently access the selected set of tools from the command line, consider adding the following directories to PATH, or call 'source ./emsdk_env.sh' to do this for you.
/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$ source ./emsdk_env.sh
Adding directories to 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
Setting environment variables:
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: command not found
Mac-MBP:webassembly wasm$ emcc --version
INFO:root:generating system asset: is_vanilla.txt... (this will be cached in "/Users/wasm/.emscripten_cache/is_vanilla.txt" for subsequent builds)
INFO:root: - ok
emcc (Emscripten gcc/clang-like replacement) 1.36.14 (commit ca2685c89546ce5f7c01e1bc769b7d2a401093dc)
Copyright (C) 2014 the Emscripten authors (see AUTHORS.txt)
This is free and open source software under the MIT license.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Mac-MBP:webassembly wasm$
Mac-MBP:webassembly wasm$ mkdir hello
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");' >> hello.c
Mac-MBP:hello wasm$ echo '}' >> hello.c
Mac-MBP:hello wasm$ emcc hello.c -s WASM=1 -o hello.html
INFO:root:(Emscripten: Running sanity checks)
WARNING:root:retrieving port: binaryen from https://github.com/WebAssembly/binaryen/archive/version_21.zip
WARNING:root:unpacking port: binaryen
INFO:root:generating port: binaryen_tag_version_21.txt... (this will be cached in "/Users/wasm/.emscripten_cache/asmjs/binaryen_tag_version_21.txt" for subsequent builds)
INFO:root:building port: binaryen
-- The C compiler identification is Clang 3.9.0
-- The CXX compiler identification is Clang 3.9.0
-- Check for working C compiler: /Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang
-- Check for working C compiler: /Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang++
-- Check for working CXX compiler: /Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Building with -std=c++11
-- Building with -msse2
-- Building with -mfpmath=sse
-- Building with -Wall
-- Building with -Werror
-- Building with -Wextra
-- Building with -Wno-unused-parameter
-- Building with -fno-omit-frame-pointer
-- Building with -fPIC
-- Building with -O2
-- Building with -UNDEBUG
-- Configuring done
CMake Warning (dev):
Policy CMP0042 is not set: MACOSX_RPATH is enabled by default. Run "cmake
--help-policy CMP0042" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
MACOSX_RPATH is not specified for the following targets:
binaryen
This warning is for project developers. Use -Wno-dev to suppress it.
-- Generating done
-- Build files have been written to: /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21
Scanning dependencies of target wasm
Scanning dependencies of target asmjs
Scanning dependencies of target support
Scanning dependencies of target passes
[ 1%] Building CXX object src/support/CMakeFiles/support.dir/archive.cpp.o
[ 2%] Building CXX object src/asmjs/CMakeFiles/asmjs.dir/asm_v_wasm.cpp.o
[ 4%] Building CXX object src/wasm/CMakeFiles/wasm.dir/wasm.cpp.o
In file included from /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: fatal error: 'cstdint' file not found
In file included from /Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/asmjs/asm_v_wasm.cpp:17:
In file included from /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: fatal error: 'atomic' file not found
#include
^
#include
^
In file included from /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: fatal error: 'cassert' file not found
#include
^
[ 5%] Building CXX object src/passes/CMakeFiles/passes.dir/pass.cpp.o
/Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/passes/pass.cpp:17:10: fatal error: 'chrono' file not found
#include
^
1 error generated.
1 error generated.
make[2]: *** [src/support/CMakeFiles/support.dir/archive.cpp.o] Error 1
make[1]: *** [src/support/CMakeFiles/support.dir/all] Error 2make[2]:
*** [src/asmjs/CMakeFiles/asmjs.dir/asm_v_wasm.cpp.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [src/asmjs/CMakeFiles/asmjs.dir/all] Error 2
[ 8%] Building CXX object src/passes/CMakeFiles/passes.dir/CoalesceLocals.cpp.o
[ 8%] Building CXX object src/wasm/CMakeFiles/wasm.dir/wasm-binary.cpp.o
1 error generated.
make[2]: *** [src/wasm/CMakeFiles/wasm.dir/wasm.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /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: fatal error: 'cassert' file not found
#include
^
/Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/passes/CoalesceLocals.cpp:25:10: fatal error: 'algorithm' file not found
#include
^
[ 10%] Building CXX object src/passes/CMakeFiles/passes.dir/CodePushing.cpp.o
1 error generated.
make[2]: *** [src/passes/CMakeFiles/passes.dir/pass.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /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: fatal error: 'cassert' file not found
#include
^
1 error generated.
make[2]: *** [src/passes/CMakeFiles/passes.dir/CoalesceLocals.cpp.o] Error 1
1 error generated.
make[2]: *** [src/passes/CMakeFiles/passes.dir/CodePushing.cpp.o] Error 1
make[1]: *** [src/passes/CMakeFiles/passes.dir/all] Error 2
1 error generated.
make[2]: *** [src/wasm/CMakeFiles/wasm.dir/wasm-binary.cpp.o] Error 1
make[1]: *** [src/wasm/CMakeFiles/wasm.dir/all] Error 2
make: *** [all] Error 2
Traceback (most recent call last):
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc", line 13, in
emcc.run()
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc.py", line 1334, in run
compile_source_file(i, input_file)
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc.py", line 1323, in compile_source_file
args = get_bitcode_args([input_file]) + ['-emit-llvm', '-c', '-o', output_file]
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc.py", line 1306, in get_bitcode_args
args = system_libs.process_args(args, shared.Settings)
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/system_libs.py", line 636, in process_args
args = port.process_args(Ports, args, settings, shared)
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/ports/binaryen.py", line 34, in process_args
get(ports, settings, shared)
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/ports/binaryen.py", line 29, in get
return [shared.Cache.get('binaryen_tag_' + TAG, create, what='port', extension='.txt')]
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/cache.py", line 95, in get
temp = creator()
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/ports/binaryen.py", line 24, in create
ports.build_native(os.path.join(ports.get_dir(), 'binaryen', 'binaryen-' + TAG))
File "/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/tools/system_libs.py", line 607, in build_native
subprocess.check_call(['cmake', '--build', '.'] + make_args, env=env)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--', '-j', '4']' returned non-zero exit status 2
Mac-MBP:hello wasm$ emcc hello.c -s WASM=1 -o hello.htmlc
Mac-MBP:hello wasm$ whi
which while
Mac-MBP:hello wasm$ whi
which while
Mac-MBP:hello wasm$ which emcc
/Users/wasm/repo/webassembly/emsdk_portable/emscripten/incoming/emcc
Mac-MBP:hello wasm$
Mac-MBP:hello wasm$ clang -v
clang version 3.9.0 (https://github.com/kripken/emscripten-fastcomp-clang/ b6ea91778b2b30e6746f2a5f2baba463948729a4) (https://github.com/kripken/emscripten-fastcomp/ dfcb07a871addf339ffac17e606e16e97e8c5f71) (emscripten 1.36.14 : 1.36.14)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Users/wasm/repo/webassembly/emsdk_portable/clang/fastcomp/build_incoming_64/bin
Mac-MBP:hello wasm$
Mac MBP:emsdk_portable wasm$。/emsdk激活clang-incoming-64位emscripten-incoming-64位sdk-incoming-64位
正在将.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'
SPIDERMONKEY_引擎=“”
V8_发动机=“”
TEMP_DIR='/var/folders/wk/mngy_vmn0xs6j32tm53vvg7m0000gn/T'
编译器\u引擎=节点\u JS
JS_引擎=[NODE_JS]
为了方便地从命令行访问所选择的工具集,可以考虑将以下目录添加到路径中,或者调用'Surrase/ESDKYEnv.SH’来为您这样做。
/Users/wasm/repo/webassembly/emsdk\u portable:/Users/wasm/repo/webassembly/emsdk\u portable/clang/fastcomp/build\u incoming\u 64/bin:/Users/wasm/repo/webassembly/emsdk\u portable/node/4.1.1\u 64bit/bin:/Users/wasm/repo/webassemassemsdk\u portable/emscripten/incoming
Mac MBP:emsdk_portable wasm$source./emsdk_env.sh
将目录添加到路径:
PATH+=/Users/wasm/repo/webassembly/emsdk\u-portable
PATH+=/Users/wasm/repo/webassembly/emsdk\u portable/clang/fastcomp/build\u incoming\u 64/bin
PATH+=/Users/wasm/repo/webassembly/emsdk\u portable/node/4.1.1\u 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_便携式wasm$cd。。
Mac MBP:webassembly wasm$emmc——版本
-bash:emmc:未找到命令
Mac MBP:webassembly wasm$emcc——版本
信息:root:正在生成系统资产:is_vanilla.txt。。。(对于后续版本,这将缓存在“/Users/wasm/.emscripten\u cache/is\u vanilla.txt”中)
信息:root:-好的
emcc(Emscripten gcc/clang-like替换)1.36.14(提交ca2685c89546ce5f7c01e1bc769b7d2a401093dc)
版权所有(C)2014 Emscripten作者(见authors.txt)
这是麻省理工学院许可下的免费开源软件。
没有担保;甚至不是为了适销性或适合某一特定目的。
Mac MBP:webassembly wasm$
Mac MBP:webassembly wasm$mkdir你好
Mac MBP:webassembly wasm$cd您好
Mac MBP:hello wasm$echo'#include'>hello.c
macmbp:hello wasm$echo'intmain(intargc,char**argv){'>>hello.c
Mac MBP:hello wasm$echo'printf(“hello,world!\n”);“>>hello.c
macmbp:hello wasm$echo'}'>>hello.c
Mac-MBP:hello wasm$emcc hello.c-s wasm=1-o hello.html
信息:root:(Emscripten:运行健全性检查)
警告:root:正在从中检索端口:binaryenhttps://github.com/WebAssembly/binaryen/archive/version_21.zip
警告:root:解包端口:binaryen
信息:根:生成端口:binaryen\u标签\u版本\u 21.txt。。。(这将缓存在“/Users/wasm/.emscripten\u cache/asmjs/binaryen\u tag\u version\u 21.txt”中,用于后续版本)
信息:根:构建端口:二进制
--C编译器标识为Clang 3.9.0
--CXX编译器标识为Clang 3.9.0
--检查C编译器是否工作:/Users/wasm/repo/webassembly/emsdk\u portable/clang/fastcomp/build\u incoming\u 64/bin/clang
--检查C编译器是否工作:/Users/wasm/repo/webassembly/emsdk\u portable/clang/fastcomp/build\u incoming\u 64/bin/clang--works
--检测C编译器ABI信息
--检测C编译器ABI信息-完成
--检查CXX编译器是否工作:/Users/wasm/repo/webassembly/emsdk\u portable/clang/fastcomp/build\u incoming\u 64/bin/clang++
--检查CXX编译器是否正常工作:/Users/wasm/repo/webassembly/emsdk\u portable/clang/fastcomp/build\u incoming\u 64/bin/clang++--works
--检测CXX编译器ABI信息
--检测CXX编译器ABI信息-完成
--正在查找pthread.h
--正在查找pthread.h-找到
--正在查找pthread_create
--正在查找pthread_create-找到
--找到的线程:TRUE
--使用-std=c++11构建
--使用msse2的建筑
--具有-mfpmath=sse的建筑
--带墙建筑
--使用-Werror的建筑
--使用Wextra构建
--具有-Wno未使用参数的建筑
--使用-fno省略帧指针的建筑
--带fPIC的建筑
--含氧建筑
--用无虫建筑
--配置完成
CMake警告(开发):
未设置策略CMP0042:默认情况下启用MACOSX_RPATH。运行“cmake”
--帮助策略CMP0042“以获取策略详细信息。使用cmake_policy命令
设置策略并抑制此警告。
未为以下目标指定MACOSX_RPATH:
比纳林
此警告适用于项目开发人员。使用-Wno-dev来抑制它。
--生成完成
--生成文件已写入:/Users/wasm/.emscripten\u ports/binaryen/binaryen-version\u 21
目标wasm的扫描依赖关系
扫描目标asmjs的依赖项
扫描目标支持的依赖关系
目标过程的扫描相关性
[1%]构建CXX对象src/support/cmakfiles/support.dir/archive.cpp.o
[2%]构建CXX对象src/asmjs/cmakfiles/asmjs.dir/asm_v_wasm.cpp.o
[4%]构建CXX对象src/wasm/cmakfiles/wasm.dir/wasm.cpp.o
在/Users/wasm/.emscripten_ports/binaryen/binaryen-version_21/src/support/archive.cpp:17中包含的文件中:
/Users/wasm/.emscripten\u ports/binaryen/binaryen versio