根据ammo.js的文档,它说:
最直接的事情是如果你想用C ++编写代码,并在网上运行它。如果是这样,那么将代码编译成LLVM,将其与bullet链接,然后使用emscripten将其编译为JavaScript。(链接它的最简单方法是将.bc文件添加到make.py中的llvm-link命令。)< / p>
那么如何将以C ++编写的代码编译成LLVM bitcode,链接并在网上运行呢? BulletHelloWorld example
如何在make.py中链接它?是否有必要始终使用ammo.idl文件,即使我想编译特定程序而不想将整个项目库公开给JavaScript? Link to make.py
答案 0 :(得分:1)
让我们从基础开始。如果您不了解make和cmake,请在继续之前进行研究。
首先,您需要从源代码构建Bullet库,以便在Web上使用它。从我所看到的,你需要传入标志来构建它独立于python。研究这些标志,看看你需要什么。
Bullet库正在使用cmake来生成构建文件 - 所以首先从cmake中获取一个makefile然后你可以“emcc make”生成的makefile。
此步骤的输出即.bc文件,将“链接”到下一步的输出。
现在要编译的example.cpp取决于Bullet库的一些标题。因此,在编译main.cpp文件时,您需要将em ++二进制文件传递给这些头文件。这个曾经编译过的应该生成你的main.bc
现在你需要再次调用em ++,但是使用main.bc和上一步的.bc作为参数,并提供所需的输出文件,即js / html。在某种意义上,我们现在链接所有“.bc”文件以生成js / html。
请注意一些丢失的符号“警告”,因为这可能意味着您的代码无法运行。
顺便说一句,所有这些都可以在官方的emscripten网站上找到,所以你应该参考它,这很麻烦。