Я собираю слегка сложный проект с помощью emscripten.(По крайней мере, более сложные, чем простые примеры, которые я нашел в Интернете.) Сначала я создаю все отдельные библиотеки и приложения и архивирую их (emar).Затем они объединяются в конечный исполняемый файл.
В этом проекте указатели функций используются для обратных вызовов на обработчиках событий.Когда я связываю конечный исполняемый файл с -O3, он удаляет функции, используемые для обработчиков обратного вызова, и код не работает должным образом.
Я могу это исправить, добавив EMSCRIPTEN_KEEPALIVE к определению обратных вызовов функции.Но мой проект кроссплатформенный, поддерживающий не только веб-развертывание.Так что это не лучшее решение.
Есть ли хороший способ сохранить все функции только в одной конкретной библиотеке, при этом оптимизируя остальную часть кода, поэтому мне не нужно изменять каждый отдельный файлПодпроект / приложение с определенной терминологией платформы?