问题标签 [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.
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
的东西。项目编译正常。)
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 测试程序。最终我只需要提供库文件。命令行最好。我不想处理项目文件。
ada - 将 GLFW 函数导入 Ada
如何将 GLFW 功能导入 Ada?
使用 GNAT GPS 作为编译器并具有以下文件夹结构:
- 测试.adb
- 测试.gpr
- 垃圾桶
- 对象
- libglfw3.a
- 库
- libglfw3.a
测试.gpr
测试.adb
编译gprbuild -P test.gpr
并输出:
所以我在想当 gdi32,winmm,opengl32被发现是因为它们已经安装在我的电脑上。我不知道他们是否需要,但只是为了安全起见。找不到 glfw3库,所以我不知道我是否以正确的方式使用 Linker_Option 或将libglfw3.a文件放在哪里。有没有链接到 c 库的好方法?
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 文件中编写的每个方法?我想是的,这就是语言的工作方式。你们对我为什么会收到此错误有任何其他想法吗?
ada - GNAT GPS 无法确定要构建的目标
我正在努力使用将构建和执行的自定义项目文件,但我收到了这组警告(或错误,我不确定)。Clean All之后,然后单击Build -> Project -> Build All以显示Build All对话框:
在我单击 Execute 开始构建之前,这些会显示在 Messages 窗口中(以红色文本显示)。当我单击执行时,构建成功完成并且程序运行。
Build All 对话框在选项对话框中有这个:
%builder %eL -P%PP %X -k -s -d
这是什么意思,为什么要这样做?
如果有帮助,这里是项目文件:
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 的任何建议?
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
文件现在在路径中,但仍然没有乐趣。我不能再设置断点。这似乎不是一个不寻常的操作,我怀疑还有另一种更高级别的方法来指定调试器的源路径。任何人都知道它是什么,或者任何关于让它工作的提示?
python - GNAT GPS 插件:在 Locations 中获取选定的线路
我正在为 GNAT GPS IDE做一个python 插件。
它使用 Locations 窗口向用户显示消息,因此突出显示文件行,就像错误一样。我GPS.Locations.parse()
用来添加此类信息,(有些模糊的)文档是here。
然后,用户可以从代码或“位置”窗口中选择行来执行操作。
从打开的文件中获取行是小菜一碟。但是我仍然无法理解的一件事是,我如何知道用户正在选择的位置窗口中的哪一行。我尝试了GPS.MDI.get("Locations")
将我引向迷宫般的儿童窗户对象的方法。我迷路了。
那么如何从 Locations 中当前选定的行中检索文本?
编辑
显然MessageContext会给我我想要的东西,但我收到一条错误消息,说没有这样的类,即使窗口有焦点也是如此。所以我认为这个类没有被实例化。
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 文件夹中的设置,但没有找到这个。
ada - 如何将命令行参数传递给由 Gnat-GPS 的 Build>Run 命令构建的可执行文件?
实际上,这样做会产生错误:
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
在命令行上运行,而且效果很好。