Образец FlasCC 01 не выводится при добавлении флага -O4
У меня есть только добавить -O4 -flto-api=exports.txt в скрипт Makefile в Flascc SDK 1.0 пример проекта 01_helloworld
это окончательный контент Makefile:
"$(FLASCC)/usr/bin/gcc" $(BASE_CFLAGS) hello.c -O4 -flto-api=exports.txt -emit-swf -swf-size=200x200 -o hello.swf
export.txt было скопировано с 09_Pthreads, вот содержимое:
# built in symbols that must always be preserved
_start1
malloc
free
memcpy
memmove
flascc_uiTickProc
_sync_synchronize
# symbols for C++ exception handling
_Unwind_SjLj_Register
_Unwind_SjLj_Resume
_Unwind_SjLj_Unregister
_Unwind_SjLj_RaiseException
когда сборка была завершена, я открыл ее с помощью приложения Flash Debug APP 11.5, но на нем ничего нет.
Что я могу сделать, чтобы выяснить причину? Спасибо за любые предложения.
2 ответа
Используйте это - или только добавьте в ваш export.txt: __muldi3 и vglttyioctl
_start1 malloc free memcpy memmove flascc_uiTickProc vglttyioctl __muldi3
Как упоминалось в Paleozogt, если у вас есть ошибка ссылки для символа, использующего файл экспорта, это означает, что ваш файл экспорта не защищает достаточно символов. Добавление "_vglttyioctl" в ваш файл exports.txt должно помочь.
Символы обычно защищены по умолчанию, если LLVM может видеть код, используя символ. Исключение составляют случаи, когда единственной ссылкой является код AS3, который он не видит. В этом случае реализация консоли по умолчанию предполагает возможность вызова функции vglttyicotl, но она была размечена, потому что она не упоминается в файле экспорта или в остальной части битового кода.