Использование Boost с Emscripten

У меня есть проект C ++, который я хотел бы преобразовать в веб-приложение. Для этого я бы хотел использовать Emscripten для создания проекта.

В проекте используются некоторые внешние библиотеки. Мне удалось скомпилировать или найти версию JavaScript большинства библиотек, и теперь я застрял с Boost. На самом деле я даже не знаю, как запустить Boost: они используют скрипт boostrap для генерации файлов для сборки библиотек. Можно передать набор инструментов этому сценарию, но Emscripten явно не поддерживается.

Мой проект использует следующие части Boost: Thread, Regex, FileSystem, Signals, System. Как я могу скомпилировать эти библиотеки с помощью Emscripten?

редактировать

После ответа npclaudiu я загрузил библиотеку с помощью gcc toolkit, затем отредактировалproject-config.jam настроить компилятор, заменив:

# Compiler configuration. This definition will be used unless
# you already have defined some toolsets in your user-config.jam
# file.
if ! gcc in [ feature.values  ]
{
    using gcc ;
}

с

# Compiler configuration. This definition will be used unless
# you already have defined some toolsets in your user-config.jam
# file.
if ! gcc in [ feature.values  ]
{
    using gcc : : "/full/path/to/em++" ;
}

Теперь, набрав./b2 эффективно строит библиотеки. Boost.Signals и Boost.System компилируются хорошо. У других есть некоторые ошибки.

Boost.Thread жалуется:

libs/thread/src/pthread/thread.cpp:503:27: error: use of undeclared identifier 'pthread_yield'
        BOOST_VERIFY(!pthread_yield());
                      ^

Boost.Regex много жалуется на то, что CHAR_BIT не объявлен, но, похоже, это проблема в emscripten:

In file included from libs/regex/build/../src/c_regex_traits.cpp:28:
In file included from ./boost/regex/v4/c_regex_traits.hpp:26:
In file included from ./boost/regex/v4/regex_workaround.hpp:35:
/path/to/emscripten/system/include/libcxx/vector:1989:92: error: use of undeclared identifier 'CHAR_BIT'
static const unsigned __bits_per_word = static_cast(sizeof(__storage_type) * CHAR_BIT);
                                                                                       ^

Boost.FileSystem, похоже, не работает из-за emscripten:

In file included from libs/filesystem/src/windows_file_codecvt.cpp:21:
/path/to/emscripten/system/include/libcxx/cwchar:117:9: error: no member named 'FILE' in the global namespace
using ::FILE;
      ~~^

Ответы на вопрос(4)

Ваш ответ на вопрос