gpt4 book ai didi

javascript - 如何链接使用 emcc 从 cpp 文件编译的 .bc 文件和项目符号库?

转载 作者:行者123 更新时间:2023-11-28 04:52:23 24 4
gpt4 key购买 nike

根据 ammo.js 的文档,它说:

The most straightforward thing is if you want to write your code in C++, and run that on the web. If so, then compile your code into LLVM, link it with bullet, and compile that to JavaScript using emscripten.(The easiest way to link it is to add your .bc file to the llvm-link command in make.py.)

那么如何将以下用 C++ 编写的代码编译成 LLVM 位码,并将其链接并在 Web 上运行呢? BulletHelloWorld example

如何在 make.py 中链接它?是否有必要始终使用 ammo.idl 文件,即使我想编译特定程序并且不想将整个子弹库暴露给 JavaScript? Link to make.py

最佳答案

所以让我们从基础开始。如果您不知道 make 和 cmake,请在继续之前研究一下。

首先,您需要从源代码构建 Bullet Library 才能在 Web 上使用它。据我所知,您需要传入标志以独立于 python 构建它。研究这些标志,看看您需要什么。

Bullet Library 使用 cmake 生成构建文件 - 所以首先从 cmake 中获取一个 makefile,然后您可以“emcc make”生成的 makefile。

此步骤的输出即 .bc 文件将“链接”到下一步的输出。

现在你要编译的 example.cpp 依赖于 Bullet Library 的一些头文件。因此,在编译 main.cpp 文件时,您需要将这些 header 的路径传递给 em++ 二进制文件。这一次编译应该生成你的 main.bc

现在您需要再次调用 em++,但将 main.bc 和上一步中的 .bc 作为参数,并提供所需的输出文件,即 js/html。从某种意义上说,我们现在正在链接所有“.bc”文件以生成 js/html。

注意缺少符号的“警告”,因为这可能意味着您的代码无法运行。

顺便说一句,所有这些都可以在官方 emscripten 网站上找到,所以如果你感到困惑,你应该引用它。

关于javascript - 如何链接使用 emcc 从 cpp 文件编译的 .bc 文件和项目符号库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47876679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com