【问题标题】:How to compile c++ to javascript using emscripten while including third party libraries?如何在包含第三方库的同时使用 emscripten 将 c++ 编译为 javascript?
【发布时间】:2015-05-19 14:56:21
【问题描述】:

实际上,我在我的 c++ 程序中使用了 GSL。我参考了 emscripten 文档,但一无所获。这是我在文档中看到的,没有任何意义:

# For example, consider the case where a project “project” uses a library “libstuff”:
# Compile libstuff to bitcode
./emconfigure ./configure
./emmake make

# Compile project to bitcode
./emconfigure ./configure
./emmake make

# Compile the library and code together to HTML
emcc project.bc libstuff.bc -o final.html

(文档没有问题吗?) 它没有说明如何在 javascript 中使用该库。

这是我遇到的问题:

  1. 如何将第三方库构建成bitcode?​​li>
  2. 如何在javascript中使用该库?

提前致谢。

【问题讨论】:

  • 您可以发布用于将程序编译成标准可执行文件的命令吗?
  • 我认为不涉及任何可执行文件
  • 我的意思是,如果您使用 GSL(例如 gcc)将程序构建为标准可执行文件,那么您会怎么做?我提出这个问题的目的是能够帮助将这些命令转换为使用 Emscripten 构建程序。
  • ... 或者,如果您可以发布您正在尝试编译的程序的一个非常小的缩减版本,(例如)只有一个仅调用一两个的 main 函数来自 GSL 的函数,并将结果输出到标准输出,然后答案可以为您提供编译它的命令。
  • 我刚刚意识到我可能误解了。你真的没有有你写的“C++程序”,但只是想从Javascript调用GSL函数?

标签: javascript emscripten


【解决方案1】:

您需要访问第三方库的 C/C++ 源代码并使用 Emscripten 对其进行编译,然后才能在您的程序中链接它。

一旦你用 Emscripten 编译了第三方库,你现在可以静态链接它并在你的 C/C++ 程序中正常使用它,这也需要用 Emscripten 构建。

如果您没有自己的 C/C++ 程序,请将Emscripten 1.32.2 now supports building dynamic libraries 转换为您可以在网页上使用的 Javascript 模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2019-10-12
    • 1970-01-01
    • 2013-05-13
    • 2020-04-22
    • 1970-01-01
    • 2016-11-07
    相关资源
    最近更新 更多