首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将wasm对象文件与wasm-ld链接时出错

将wasm对象文件与wasm-ld链接时出错
EN

Stack Overflow用户
提问于 2019-07-31 23:43:45
回答 1查看 1.4K关注 0票数 2

我正在尝试用wasm-ld ( llvm wasm链接器)链接两个简单的wasm文件

wasm文件是使用wabt工具从2个简单的wat文件(mod_a.wat和mod_b.wat -请参见下面的代码)编译而成的。更准确地说:

代码语言:javascript
复制
;;mod_a.wat
(module $mod_a
  (import "mod_b" "square" (func $square (param i32) (result i32)))

  (start $start)

  ;; _start entry point expected by wasm-ld
  (func $start
    (drop (call $square (i32.const 16)))
  )
)

;;mod_b.wat
(module $mod_b
  (export "square" (func $square))

  (func $square (param $value i32) (result i32)
    (i32.mul (local.get $value) (local.get $value))
  )
)


$ wat2wasm -r ./mod_a.wat
$ wat2wasm -r ./mod_b.wat
$ wasm-ld-8 ./mod_a.wasm ./mod_b.wasm -o main.wasm
wasm-ld-8: error: entry symbol not defined (pass --no-entry to supress): _start
wasm-ld-8: error: ./mod_a.wasm: undefined symbol: square

我不太理解为什么这两个符号是未定义的(注意:我将启动函数命名为$start还是$_start并不会改变任何事情)。这当然不能解释为什么平方函数不被识别。

有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-08-06 08:29:05

wat2wasm的-r标志仅支持最小的wasm对象文件格式。例如,它不支持写出符号表,这无疑使它变得相当无用。现在,生成可链接目标文件的最佳选择是使用llvm (使用clang或.s格式的手写汇编)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57294541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档