Emscripten logo

Начиная с версии 1.38.41 от 07.08.2019 функция callMain больше не экспортируется. Это было сделано для лучшей минификации JavaScript, о чем сказано в официальном changelog.

Если нужно старое поведение, достаточно добавить callMain в EXTRA_EXPORTED_RUNTIME_METHODS.

В CMakeLists.txt своих проектов я делаю так:

set(EMSCRIPTEN_LINK_FLAGS
   "${EMSCRIPTEN_LINK_FLAGS}
   -s \"EXTRA_EXPORTED_RUNTIME_METHODS=[\'callMain\']\"")

set_target_properties(ProjectName PROPERTIES
   LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS}"
   SUFFIX ".html")