如何将libm链接到我的emscripten端口

时间:2014-07-09 21:13:46

标签: hyperlink emscripten libm

我正在尝试使用emscripten来移植一些需要libm的C代码。通常,它使用我的系统版本,我不需要担心链接到它,但我需要手动链接它与emscripten。

如何关联libm

我已尝试使用openlibm,但当make使用emcc(emscripten编译器)时,它无法找到所有依赖项,因为openlibm仍依赖于系统标头

我也尝试使用GNU libc来源,但无法导航Makefile

我需要的是由emcc生成的bitcode,在使用编译器中的-lm标志编译为JavaScript时链接到。

1 个答案:

答案 0 :(得分:1)

默认情况下,

libm已关联。

emcc编译器如果指定(-lm)将无法链接它,因为这需要显式搜索路径(-L/path/)。它有一个不应该被覆盖的内部实现,除非你可以提供你自己的emcc编译的bitcode。

编译器将为未解析的库抛出警告,直到您编译为JavaScript,因为在最终编译之前不包括libm。中间目标上的这些错误可以而且应该被忽略 - 这是一个已知的问题。

可以在https://github.com/kripken/emscripten/tree/master/system/include找到通过编译器获得的可用库。具体而言,libm中包含musl。它并不明确,但{{1}}常见问题解答中包含了这一点。