Образец 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, но на нем ничего нет.

Где мой HelloWorld

Что я могу сделать, чтобы выяснить причину? Спасибо за любые предложения.

2 ответа

Используйте это - или только добавьте в ваш export.txt: __muldi3 и vglttyioctl

_start1 malloc free memcpy memmove flascc_uiTickProc vglttyioctl __muldi3

Как упоминалось в Paleozogt, если у вас есть ошибка ссылки для символа, использующего файл экспорта, это означает, что ваш файл экспорта не защищает достаточно символов. Добавление "_vglttyioctl" в ваш файл exports.txt должно помочь.

Символы обычно защищены по умолчанию, если LLVM может видеть код, используя символ. Исключение составляют случаи, когда единственной ссылкой является код AS3, который он не видит. В этом случае реализация консоли по умолчанию предполагает возможность вызова функции vglttyicotl, но она была размечена, потому что она не упоминается в файле экспорта или в остальной части битового кода.

Другие вопросы по тегам