常见错误
「找不到文件」
路径写错了。注意两点:
- 工作区根是
~,比如~/examples/c/app/tetris.c - 在命令行页
cd之后,相对路径是相对当前目录的
「未找到标签: xxx」
链接时找不到这个函数。常见原因:
- 用了标准库里没有的函数 —— 见「UI 开发」里的接口清单
- 拼错了函数名
- 把函数声明写在了调用之后(前置声明)
「内存错误(PC=…)」+ 一堆寄存器
程序跑飞了:访问了不该访问的内存。排查顺序:
- 数组越界(最常见)—— 检查下标范围
- 指针/地址算错
- 函数参数个数不对(多传/少传都会让栈错位)
报错里的 PC=00000047 是出错时的指令地址;下面那行 MOVE R0, @1 ... 是出错的那条指令,地址=FFFFFFFC 这类是它访问的地址。
「编译超时」
程序太大或编译器自己陷进去了。见「编译与运行」里的看门狗说明。
程序跑起来但窗口是黑的
- 忘了
ui_2d_present()—— 每帧画完要提交一次 - 或者开窗之后才画第一笔就退出了:
ui_win_open之后先把第一帧画出来 - 检查
ui_2d_clear()的颜色是不是全透明的(0x00......的 alpha 是 0)
触摸没反应
- 坐标是画布坐标,不是屏幕坐标(画布按比例居中,可能有黑边)
- 落在黑边上的点击会被丢掉(这是有意的)
- 检查有没有先
ui_msg_clear()把上一局的残留清掉
还是不对
- 先跑
vml test确认环境正常 - 把程序缩到最小(只保留出问题的那几行)再跑
- 让 AI 帮你看:「帮我看看 examples/c/xxx.c 为什么报内存错误」