小编gee*_*len的帖子

如何使用Emscripten从Swift编译Hello Word到JavaScript

鉴于最简单的swift文件:

println("lol")
Run Code Online (Sandbox Code Playgroud)

在命令行上运行它xcrun swift -i lol.swift或者编译成可执行文件xcrun swift lol.swift -o lol是很简单的,但是如何为emscripten进行简单的概念验证呢?

我之前没有使用过emscripten,但是在http://kripken.github.io/emscripten-site/docs/getting_started/Tutorial.html上使用C++获得了一个hello world示例,并且想要编译我的Swift代码.

我试过了

xcrun swift lol.swift -emit-bc -o lol.bc
emcc lol.bc
Run Code Online (Sandbox Code Playgroud)

但是得到

Value:   %1 = call { i8*, i64, i64 } @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp17numberOfCodeUnitsBw_SS(i8* bitcast ([4 x i16]* @0 to i8*), i64 3)
LLVM ERROR: Unrecognized struct value
Traceback (most recent call last):
  File "/Users/glen/Downloads/emsdk_portable/emscripten/1.16.0/emcc", line 1540, in <module>
shared.Building.llvm_opt(final, link_opts)
  File "/Users/glen/Downloads/emsdk_portable/emscripten/1.16.0/tools/shared.py", line 1267, in llvm_opt
assert os.path.exists(target), 'Failed to run llvm optimizations: ' + …
Run Code Online (Sandbox Code Playgroud)

javascript llvm emscripten swift

7
推荐指数
1
解决办法
2691
查看次数

标签 统计

emscripten ×1

javascript ×1

llvm ×1

swift ×1