如何使用EMCC和子弹库链接从CPP文件汇编的.bc文件

How to link .bc files compiled from cpp files using emcc, with bullet libraries?

本文关键字:文件汇编 CPP bc 文件 链接 EMCC 何使用 子弹      更新时间:2023-10-16

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

最直接的事情是,如果您想在C 中编写代码,并将其运行在网络上。如果是这样,然后将代码编译到LLVM中,将其与bullet链接到使用Emscripten的JavaScript。/p>

那么,如何将C 编写的以下代码编译到LLVM比特码中,将其链接并在Web上运行?Bulethelloworld示例

如何将其链接到make.py中?即使我想编译特定程序并且不想将整个Bullet Library曝光到JavaScript,是否有必要始终使用ammo.idl文件?链接到make.py

,让我们从基础知识开始。如果您不知道制造和cmake,请在继续之前对其进行研究。

首先,您需要从源构建子弹库才能在网络上使用它。据我所知,您需要传递旗帜才能独立于Python构建它。研究这些标志,看看您需要什么。

子弹库正在使用cmake生成构建文件 - 因此首先从cmake中获取makefile,然后您可以" emcc"制造"生成的makefile。

此步骤的输出IE A .bc文件,将"链接"到下一步的输出。

现在,您要编译的示例.cpp取决于子弹库的某些标题。因此,在编译主机文件时,您将需要将EM 二进制路径传递到这些标题。曾经编译的这将产生您的主体。BC

现在您需要再次致电EM ,但是使用main.bc以及上一个步骤的.bc作为参数,还提供所需的输出文件,即JS/HTML。从某种意义上说,我们现在正在链接所有" .bc"文件以生成JS/HTML。

查找一些缺少符号的"警告",因为这可能意味着您的代码不会运行。

顺便说一句,所有这些都可以在官方Emscripten网站上获得,因此您应该引用它。