ESP32运行Toit应用提示GLIBC版本缺失、文件不存在报错
问题原因
- 报错的核心诱因是本地自动缓存的Toit v1.6.20版本SDK对glibc版本有要求,当前系统的
libc.so.6版本低于2.34,SDK自带的toitc编译器进程无法正常启动。 - 终端提示的File not found是编译器启动失败后,toit命令行工具抛出的误导性连带错误,和工作目录下
bubble_sort.toit文件的实际存在状态无关,ls命令查到文件真实存在的结果是准确的。
修复步骤
- 第一步:删除本地缓存的不兼容版本SDK,执行命令:
rm -rf ~/.cache/toit/sdk/v1.6.20 - 第二步:根据自身系统情况选择适配的SDK版本
- 若当前使用的是Ubuntu 20.04、Debian 11这类自带glibc 2.31版本的Linux发行版,不要使用v1.6.x系列SDK,降级安装v1.5.x系列Toit工具链即可,该系列版本对低版本glibc兼容性更好,不会触发依赖报错。
- 若不想降级SDK版本,可直接将系统升级到Ubuntu 22.04、Debian 12及以上版本,这类系统自带glibc 2.34及以上版本,可以直接兼容v1.6.20版本SDK。
- 第三步:回到
~/toit_apps工作目录重新执行运行命令:
命令执行时会自动拉取适配版本的SDK,编译器可正常启动后,之前的假文件不存在报错会自动消失,程序可正常编译并运行在ESP32设备上。toit -d=dell run bubble_sort.toit
内容的提问来源于stack exchange,提问作者Michael Kanzieper
相关产品推荐
相关产品推荐

