我只在Flascc SDK 1.0示例01_helloworld项目中将-O4 -flto-api = exports.txt添加到Makefile脚本
这是最终的Makefile内容:
"$(FLASCC)/usr/bin/gcc" $(BASE_CFLAGS) hello.c -O4 -flto-api=exports.txt -emit-swf -swf-size=200x200 -o hello.swf
exports.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调试APP 11.5打开它,但没有任何内容。
我能做些什么来弄清楚原因吗?感谢您的任何建议。
答案 0 :(得分:1)
使用此 - 或者只在你的export.txt中添加:__ muldi3和vglttyioctl
_start1 的malloc 自由 的memcpy 的memmove flascc_uiTickProc vglttyioctl __muldi3
答案 1 :(得分:0)
正如paleozogt所提到的,如果使用导出文件对符号ater有引用错误,则表示导出文件没有保护足够的符号。将“_vglttyioctl”添加到您的exports.txt文件应该可以解决问题。
如果LLVM可以使用符号查看代码,则默认情况下通常会保护符号。唯一的例外是当唯一的引用来自它无法看到的AS3代码。在这种情况下,默认的控制台实现期望能够调用vglttyicotl函数,但它已被条带化,因为它在导出文件或bitcode的其余部分中没有提到。