You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GNAT Studio 2021社区版修改代码后编译报错compilation unit expected咨询

错误根因

报错main.adb:1:01: error: compilation unit expected明确指向源文件第一行首字符位置存在编译器无法识别的隐藏内容,90%以上的场景为UTF-8字节顺序标记(BOM)导致,其余场景为同步文件冲突、配置异常。

解决方案

  • 修正源文件编码
    使用支持编码查看的文本编辑器(如Notepad++、VS Code)打开修改后的Main.adb,检查右下角编码标识:
    若编码为「UTF-8 BOM」,将编码切换为普通UTF-8(无BOM)后重新保存,再次编译即可正常通过。
    若使用GNAT Studio内置编辑器修改仍出现该问题,可在编辑器设置中将默认保存编码调整为UTF-8无BOM。
  • 排查同步目录干扰
    项目存储在OneDrive同步目录下时,实时同步机制可能锁定源文件、或在同步过程中篡改文件头信息。可将整个项目文件夹移动到本地非同步目录(例如C:\AdaProjects\)下,再进行修改编译测试。
  • 校验项目与文件配置
    1. 确认源文件名为Main.adb,与代码中定义的procedure Main大小写完全匹配,GNAT对单元名与文件名的匹配校验区分大小写。
    2. 打开项目根目录下的.gpr工程文件,确认Main属性正确指向Main程序,Source_Dirs配置包含源文件所在的src目录,无多余无效文件引用。
  • 重置IDE配置
    若以上操作均无效,关闭GNAT Studio,删除用户目录下的.gnatstudio配置文件夹(默认路径为C:\Users\你的用户名\.gnatstudio),重启软件后重新创建项目测试即可。

该问题属于环境配置类问题,并非GNAT编译器本身的已知缺陷。


内容的提问来源于stack exchange,提问作者Ada Lovelace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:36:03