使用GNATstudio与gcc-13.1.0,何处查找Ada的Standard包并修改Put命令?
查找Ada Standard包的位置(GNATstudio + GCC 13.1.0)
首先明确:不建议直接修改标准库源码,这会影响所有Ada程序的行为,且后续编译器更新会覆盖你的修改。更稳妥的方式是自行封装输出过程替代Standard.Put。若你确实需要定位源码位置,可按以下方式操作:
Linux/macOS系统:
GCC 13.1.0的Ada标准库通常位于类似路径:/usr/lib/gcc/x86_64-linux-gnu/13/adalib/,或自定义安装目录下的lib/gcc/<目标架构>/13/adalib/
Standard包的源码文件为a-std__io.adb和a-std__io.ads(GNAT对标准库文件采用缩写前缀命名),也可通过命令快速定位:find / -name "a-std__io.adb" 2>/dev/nullWindows系统:
若通过GNAT Community安装,默认路径大致为:C:\GNAT\2023\lib\gcc\x86_64-w64-mingw32\13.1.0\adalib\
也可直接用文件资源管理器搜索a-std__io.adb找到具体位置。
另外,在GNATstudio中可直接定位:
- 打开GNATstudio并创建/打开Ada项目
- 在代码中右键点击
Standard.Put,选择Go to Declaration或Go to Body,IDE会自动跳转到对应标准库源码文件,顶部路径栏即为该文件位置。
如果只是需要关闭自动换行功能,推荐自行实现替代过程,示例:
procedure My_Put(Item : in String) is begin Ada.Text_IO.Put(Item); -- 不添加自动换行逻辑,按需控制输出格式 end My_Put;
内容的提问来源于stack exchange,提问作者Michael Ayres
相关产品推荐
相关产品推荐

