Как связать файлы .bc, скомпилированные из файлов cpp, используя emcc, с библиотеками маркеров?

Согласно документации ammo.js, он говорит:

Самое простое — это если вы хотите написать свой код на C ++ и запустить его в Интернете. Если это так, то скомпилируйте ваш код в LLVM, скомпонуйте его с помощью bullet и скомпилируйте его в JavaScript с помощью emscripten. (Самый простой способ связать его — добавить файл .bc в команду llvm-link в make.py.)

Итак, как я могу скомпилировать следующий код, написанный на C ++, в битовый код LLVM, связать его и запустить в Интернете? Пример BulletHelloWorld

Как я могу связать это в make.py? Необходимо ли всегда использовать файл ammo.idl, даже если я хочу скомпилировать конкретную программу и не хочу предоставлять всю библиотеку маркеров для JavaScript?
Ссылка на make.py

0

Решение

Итак, давайте начнем с основ. Если вы не знаете о make и cmake, изучите его, прежде чем продолжить.

Сначала вам нужно собрать библиотеку маркеров из исходного кода, чтобы использовать ее в Интернете. Из того, что я вижу, вам нужно передать флаги, чтобы построить его независимо от python. Изучите эти флаги и посмотрите, что вам нужно.

Библиотека Bullet использует cmake для генерации файлов сборки — поэтому сначала получите make-файл из cmake, а затем вы можете «emcc make» сгенерированный make-файл.

Вывод этого шага, то есть файла .bc, должен быть «связан» с выводом следующего шага.

Теперь пример .cpp, который вы хотите скомпилировать, зависит от некоторых заголовков библиотеки маркеров. Поэтому при компиляции файла main.cpp вам нужно будет передать двоичному файлу em ++ путь к этим заголовкам. Это после компиляции должно генерировать ваш main.bc

Теперь вам нужно снова вызвать em ++, но с main.bc вместе с .bc из предыдущего шага в качестве параметров, а также предоставить требуемый выходной файл, т.е. js / html. В некотором смысле мы сейчас связываем все файлы «.bc» для генерации js / html.

Ищите пропущенный символ «предупреждения», так как это может означать, что ваш код не запустится.

Между прочим, все это доступно на официальном сайте emscripten, так что в случае путаницы вы должны обратиться к нему.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector