问题标签 [gnat-gps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
116 浏览

ada - GPS (gnat) 不显示源文件中的标签

显示标签 不显示标签

问题 1

在第一张图片中,您可以看到 GNAT Programming Studio 正在显示文件的标签(包、编译指示、子程序等)wasabee-caches.adb

然而,在第二张图片中,GPS 不允许我展开目录.(当前目录,以蓝色突出显示),这是设计使然还是我配置错误?

问题2

在第二个项目 Wasabee_GWindows 中,当我尝试gnatpp(菜单栏:编辑/漂亮打印)源文件时,GPS 告诉我gnat:不支持聚合库项目,我的问题是,如何在 Wasabee_GWindows 中漂亮地打印源文件?(AWS 是聚合的,Wasabee_GWindows 的 gpr 文件有with "aws",但 Wasabee_GWindows 的 gpr 文件本身没有类似aggregate library project Wasabee_GWindows的东西。项目编译正常。)

0 投票
1 回答
5072 浏览

c - 如何创建 ada lib.a 并链接到 C

我正在尝试创建一个 ada 库并尝试了一些不同的东西。我尝试使用 makefile 编译项目并尝试从所有 .o 文件创建一个库这似乎没有按预期工作。然后我询问了 adacore 支持,他们向我指出了在 ada 和 c 项目中使用 .gpr 文件的方向,并在应该创建库的 ada.gpr 中使用。这几乎奏效了,但是当它尝试编译 ada 时,我得到了未定义的引用。

我尝试过的:命令行:

当我尝试阅读库中的内容时

我收到此错误 ld:警告:找不到条目符号 _start;未设置起始地址

项目文件:我的 ada 项目文件 prj.gpr

我的 c 项目文件 c_main.gpr

当我运行命令 gprbuild c_main.gpr

我得到了 2 个不同的错误:首先是对我的 ada 代码中的某些包的未定义引用,并且出现在我不知道存在的 gnat .adb 文件中。我想,图书馆太破了。其次,即使代码编译良好并运行,某些包的字段也无法找到/不存在。它给了我错误,指出 ada 代码中不存在这些字段。

TLDR:我在 3 个不同的目录中有一个 ada 项目,我想从它们创建一个库。然后链接到 C 测试程序。最终我只需要提供库文件。命令行最好。我不想处理项目文件。

0 投票
1 回答
234 浏览

ada - 将 GLFW 函数导入 Ada

如何将 GLFW 功能导入 Ada?

使用 GNAT GPS 作为编译器并具有以下文件夹结构:

  • 测试.adb
  • 测试.gpr
  • 垃圾桶
  • 对象
  • libglfw3.a
    • libglfw3.a

测试.gpr

测试.adb

编译gprbuild -P test.gpr并输出:

所以我在想当 gdi32winmmopengl32被发现是因为它们已经安装在我的电脑上。我不知道他们是否需要,但只是为了安全起见。找不到 glfw3库,所以我不知道我是否以正确的方式使用 Linker_Option 或将libglfw3.a文件放在哪里。有没有链接到 c 库的好方法?

0 投票
1 回答
571 浏览

parsing - Ada 错误:引发 SYSTEM.ASSERTIONS.ASSERT_FAILURE :来自 lexical_analyzers.ads:20 的前提条件失败

我在《编程概念》中所做的一些事情超出了我父亲的想象,因为预计下一代会比上一代更聪明。无论如何,我一直在做一个需要在 12 月 2 日之前完成的项目。它相当复杂。它应该是一种称为 Eiffel 的基本语言的解析器和词法分析器。到目前为止,我已经在教授的网站和示例文件的帮助下修复了所有编译错误(我认为任何关于 Ada 的书籍都没有介绍如何创建解析器或词法分析器)。我构建了 exe,运行它,结果发现我收到如下错误:

在此 zip 文件中的 lexical_analyzers.ads 中的代码中指定:

https://drive.google.com/file/d/0B3ZPyNRv7C3heEN1cnU3dVFOZmM/view?usp=sharing

第 20 行,甚至可能是它上面的第 17 行,都出现了错误。这可能与我编写 parser.adb 文件的方式有关。这种语言的工作方式与 C 语言非常相似,因为您需要在编写主体文件之前编写一个规范文件,有时在我编写代码时来回切换。我是否还应该在 parser.ads 文件中指定我在 parser.adb 文件中编写的每个方法?我想是的,这就是语言的工作方式。你们对我为什么会收到此错误有任何其他想法吗?

0 投票
1 回答
1126 浏览

ada - GNAT GPS 无法确定要构建的目标

我正在努力使用将构建和执行的自定义项目文件,但我收到了这组警告(或错误,我不确定)。Clean All之后,然后单击Build -> Project -> Build All以显示Build All对话框:

在我单击 Execute 开始构建之前,这些会显示在 Messages 窗口中(以红色文本显示)。当我单击执行时,构建成功完成并且程序运行。

Build All 对话框在选项对话框中有这个:

%builder %eL -P%PP %X -k -s -d

这是什么意思,为什么要这样做?

如果有帮助,这里是项目文件:

0 投票
1 回答
849 浏览

ada - 如何在 ADA GPS 中指定包含目录

我从一位同事那里获得了一个 Ada 源文件,以包含在现有项目中。这个源文件想要包含我在 c:\gnatpro\include\win32ada 中看到的 win32.ads。但是我安装的 GnatPro 没有查看此文件夹区域,仅查看特定于版本的 c:\gnatpro\6.2.2... 我不确定我需要更改什么才能强制构建工具查看 c:\ gnatpro\include 也是(如果它是 C/C++ 我会添加 -i)。

关于如何修改我的构建命令以包含 c:\gnatpro\include 的任何建议?

0 投票
1 回答
793 浏览

ada - Ada 2012 和 GNAT GPS IDE 调试器找不到源文件

我正在使用 Windows 7/64 下的 GPS IDE 在 Ada 2012 中使用简单的 hello world 单 .adb 文件程序。如果我将所有对象和源文件放在一起,一切正常。我确实必须转到项目属性 Switches 选项卡并选择 Ada 选项卡并启用“调试信息”复选框

现在我想更好地组织我的项目并将目标文件放在他们自己的目录中。我使用了项目属性Objects选项卡并将设置从 更改.ojb。我可以构建和运行。现在,当我去调试并单击 hello.adb 中的一行时,我得到“没有名为 hello.adb 的源文件。我猜它在 obj 目录中查找。我尝试发出set directory命令并给出了绝对路径父文件夹。随后的show directories命令显示包含我的文件夹hello.adb文件现在在路径中,但仍然没有乐趣。我不能再设置断点。这似乎不是一个不寻常的操作,我怀疑还有另一种更高级别的方法来指定调试器的源路径。任何人都知道它是什么,或者任何关于让它工作的提示?

0 投票
1 回答
103 浏览

python - GNAT GPS 插件:在 Locations 中获取选定的线路

我正在为 GNAT GPS IDE做一个python 插件。

它使用 Locations 窗口向用户显示消息,因此突出显示文件行,就像错误一样。我GPS.Locations.parse()用来添加此类信息,(有些模糊的)文档是here

然后,用户可以从代码或“位置”窗口中选择行来执行操作。

从打开的文件中获取行是小菜一碟。但是我仍然无法理解的一件事是,我如何知道用户正在选择的位置窗口中的哪一行。我尝试了GPS.MDI.get("Locations")将我引向迷宫般的儿童窗户对象的方法。我迷路了。

那么如何从 Locations 中当前选定的行中检索文本?

编辑

显然MessageContext会给我我想要的东西,但我收到一条错误消息,说没有这样的类,即使窗口有焦点也是如此。所以我认为这个类没有被实例化。

0 投票
1 回答
99 浏览

ada - GPS 的 Build>Run 命令中的默认参数是什么?

GPS 教程的第 9 步中,我点击了 Build > Run,“Run Main”对话框填充了一堆命令行选项,例如builder%% -s blahblahblah %T. 将参数“input.txt”放在最后会引发异常,因此我将其删除并替换为%E input.txt. 现在原来的选项已经消失了,我不能使用“Run Main”来运行任何项目——“Run:sdc”窗口会打开,但我在那里输入的任何内容都不会产生结果。

即使当我卸载并重新安装时,GPS 也会为此对话框保留相同的设置。最初提出了哪些论据?

有帮助的替代答案:如何获得不保存设置的全新安装?我查看了注册表、AppData 和 ProgramData 文件夹中的设置,但没有找到这个。

0 投票
1 回答
1243 浏览

ada - 如何将命令行参数传递给由 Gnat-GPS 的 Build>Run 命令构建的可执行文件?

GPS 教程的第 9 步状态

实际上,这样做会产生错误:

gprbuild: "c:\gnat\2015\share\examples\gps\tutorial\obj\sdc" is not a source of any project.

为构建的可执行文件传递命令行参数的语法是什么?

我尝试了 gprbuild 的各种宏和参数组合。按照说明进行的默认设置是%builder -d %eL -P%PP %X %T %E input.txt. 我确保“input.txt”存在于 %E 所指的目录中。我可以sdc input.txt在命令行上运行,而且效果很好。