функции вскрытия с -O3 - PullRequest
       8

функции вскрытия с -O3

0 голосов
/ 27 ноября 2018

Я собираю слегка сложный проект с помощью emscripten.(По крайней мере, более сложные, чем простые примеры, которые я нашел в Интернете.) Сначала я создаю все отдельные библиотеки и приложения и архивирую их (emar).Затем они объединяются в конечный исполняемый файл.

В этом проекте указатели функций используются для обратных вызовов на обработчиках событий.Когда я связываю конечный исполняемый файл с -O3, он удаляет функции, используемые для обработчиков обратного вызова, и код не работает должным образом.

Я могу это исправить, добавив EMSCRIPTEN_KEEPALIVE к определению обратных вызовов функции.Но мой проект кроссплатформенный, поддерживающий не только веб-развертывание.Так что это не лучшее решение.

Есть ли хороший способ сохранить все функции только в одной конкретной библиотеке, при этом оптимизируя остальную часть кода, поэтому мне не нужно изменять каждый отдельный файлПодпроект / приложение с определенной терминологией платформы?

1 Ответ

0 голосов
/ 04 декабря 2018

Согласно документации Emscripten , я думаю, что LLVM встроил эту функцию, и функция удалена.

Еще один способ оживить функцию - добавить ее к EXPORTED_FUNCTIONS.Например:

emcc -s EXPORTED_FUNCTIONS='["_function_1", "_function_2"]'   ...other options...

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

...