如何在GPS Community 2021中正常启用Ada Big_Numbers
解决方法
你遇到的问题是GPS的语义检查功能没有读取到-gnatwi配置,因为该功能使用的开关和普通编译的开关是分开维护的,按以下步骤处理即可:
- 添加Ide包配置到项目gpr文件
GPS的语法检查、语义检查等IDE内置功能读取的是gpr文件中Ide包的配置,而非你修改的Compiler包(Compiler包仅作用于正常构建流程)。配置示例如下:
package Ide is -- 继承原有编译开关,避免重复配置 for Default_Switches ("Ada") use Compiler'Default_Switches ("Ada"); end Ide;
如果你不想继承全量编译开关,也可以单独把需要的-gnatwi(或者完整的Ada 2022支持开关-gnat2022)加到Ide的Default_Switches列表中。
2. 补充Ada 2022全局开关(可选但推荐)
相比单独添加-gnatwi,直接加入-gnat2022开关可以完整启用所有Ada 2022标准特性支持,不会出现其他Ada 2022相关的警告,你可以把该开关同时加到Compiler和Ide的开关列表中。
3. 检查依赖拼写错误
你代码里写的with Ada.Numerics.Big_Numers存在拼写错误,正确的包名是Ada.Numerics.Big_Numbers,少写了字母b,该错误也可能导致异常提示。
4. 重载项目配置
修改完gpr文件后,在GPS菜单栏选择「Project -> Reload Project」重载项目,再执行语义检查即可生效,不需要重启GPS。如果还是有异常,可以先执行「Build -> Clean All」清理历史构建缓存再重试。
内容的提问来源于stack exchange,提问作者mhatzl
相关产品推荐
相关产品推荐

