问题标签 [gnat]

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 投票
1 回答
350 浏览

exception - 使用 gtkada 时如何管理异常

当我使用 gtkada 并且我的 GUI 正在运行时,不会管理任何异常并且程序总是崩溃。消息是

此应用程序已请求运行时以不寻常的方式终止它。

请联系应用程序的支持团队以获取更多信息。

一段测试代码如下:

按下按钮时,会引发异常,但应在同一过程中对其进行管理,但不是这样,而是整个程序崩溃。

知道如何解决这个问题吗?

谢谢

0 投票
1 回答
364 浏览

ada - 使用 gnatbench 进行多语言构建

我正在尝试在 gnatbench (C/C++) 中构建一个多语言项目,它只是忽略了构建我的 c++ 代码。我的项目文件如下所示:

GPS 似乎可以正确构建它,但 gnatbench 没有。另外,我注意到 gnatbench 使用 gnatmake 构建,而 GPS 使用 gprbuild 构建。除了不使用 gnatbench 之外,知道如何解决这个问题吗?

0 投票
2 回答
5662 浏览

ada - Ada: gnat gprbuild 如何在库中链接?

在我正在处理的这个多语言 GPRBuild 项目中,我有一些 c++ 库文件 (*.a) 我需要链接到我的可执行文件中。是否有一个 gpr 属性告诉它要链接什么或无论如何将 -l -L 开关传递给链接器?

0 投票
1 回答
1891 浏览

gtk - 修改 GTKAda 中按钮标签的字体大小和颜色

任何人都知道如何在 GTKAda 中修改按钮标签的特性。

我已经尝试过使用 Pango 的包和 Style 的包和 Widget 的包,它们不会更改属性。

代码是这样的:

但标签“选择”的特征不会改变。

任何想法或提示?

感谢您阅读并回答我的问题。

0 投票
4 回答
4108 浏览

ada - 让 Ada(用 GNAT 编译)从当前目录之外导入文件?

我正在做大学编程课程的介绍,选择的语言是 Ada。我正在用 Kate 编码并使用 GNAT 4.6.3 进行编译。我们必须为我们的程序使用教师提供的库,如下所示:

当然,该文件foo.adb必须包含在与我的源文件相同的目录中。由于多个项目依赖于这个库,并且我喜欢将每个项目保存在自己的子目录中,因此我必须将库文件复制到每个新项目中。更不用说我的库代码和源代码都在同一个目录中。

那么有什么办法可以去:

?

我试过环顾四周,但我发现的只是关于编译器选项的东西。我宁愿不必搞乱这些,特别是因为只有某些项目需要这个特定的库,所以将它添加到全局编译器设置并让编译器毫无意义地搜索它不需要的路径是没有意义的不需要搜索。

0 投票
1 回答
319 浏览

list - Ada:访问通用列表的各个元素

我使用“Indefinite_Doubly_Linked_Lists”列表在 Ada 中编写了一堆通用数字。

弹出和推送操作是通过 append 和 delete_last 实现的,但对于排序方法,我需要访问列表的各个项目。

我确实制定了一种仅使用追加/前置 delete_last/first 的排序方法,但结果远非优雅(而且可能不正确)

如何从泛型类型列表中访问单个元素(或迭代)?

0 投票
3 回答
6847 浏览

ada - Ada:包不允许有body

使用 GNAT 编译器,当我尝试编译或检查以下文件的语义时,我得到了一些错误的变体package "Foo" does not allow a body。我是这门语言的新手,在 Internet 上的任何地方都找不到这个看似基本问题的答案。请指教。

foo.ads

foo.adb

0 投票
1 回答
4047 浏览

exception - Ada CONSTRAINT_ERROR 在“应该”时没有被提出

我一直在看这个Ada 95 教程。我在读到可以定义一个范围不同于标准范围的类型,如果程序试图超出这个范围,它将引发错误。在我自己的程序上工作时,我注意到如果定义中范围的结尾落在其基础类型的边界上,那么在分配超出该范围的值时,程序将不会引发 CONSTRAINT_ERROR。相反,它会愉快地继续前进,然后环绕。我编写了一个程序来明确显示这一点。

有谁知道解释这种行为的 Ada 规则?

-柯克

这是我终端的输出,源代码在下面。

源代码:

0 投票
1 回答
4174 浏览

xcode - 如何在 Mac 中编译/构建 ada?

我正在使用带有命令行工具的 xCode 4.5.1 运行 Mac OS X 10.8 (Mountain Lion)。

我刚刚从这里安装了 GNAT 2012 。

我使用本教程安装了它:

导航到包含一个名为的文件的目录:doinstall
输入:sudo mkdir /usr/loca/gnat 您必须输入您的密码
输入:sudo ./doinstall 按回车键和提示 y 更新您的路径:sudo export PATH=/usr /local/gnat/bin:$PATH 你现在应该可以使用命令 gnatmake 进行编译了

一切顺利,我重新开始。在我的桌面上,我有 hello.adb:

在终端中,我导航到我的桌面并执行gnatmake hello.adb. 但我明白了

但是在终端中,如果我执行info gnat,我会得到一个非常大的文档。

  1. 为什么我不能编译 hello.adb?无论如何要修复?
  2. 我可以在 xCode 中创建 ada 项目并编译/调试吗?我想使用 xCode 作为 IDE 来编辑源文件。如果是这样,我应该使用什么类型的项目?“外部构建系统”也许?有人可以发布一个关于如何使用 xcode 运行 hello world 的教程吗?这对我有很大帮助。视频会很棒。可惜艾达在互联网上的资源如此之少。
0 投票
1 回答
587 浏览

ada - source_dirs 在 .gpr scipt 中不起作用

我继承了一个 Ada/C++ 项目,我正在尝试使用 gprbuild 来自动化构建过程(之前是使用一组大约 12 个 .bat 文件完成的)。我对 Ada 和 gprbuild 完全陌生,但实际上取得了不错的进展。我可以编译我需要的 .exe,但不能编译库。我无权完全共享 .gpr 文件,但相关部分如下所示:

当我运行“gprbuild -P my_project.gpr”时,它又运行“gcc -c gnat5 one_more_ada_file.adb”并抱怨它找不到 one_more_ada_file.adb 依赖的某个文件。依赖项在 ..\another_project\even_more_ada_files 中,所以我希望能找到它。但是,如果我将依赖项复制到与 one_more_ada_file.adb 相同的文件夹中,错误就会消失。

由于 VCS 的设置方式以及我们如何在两个项目之间共享代码,我宁愿弄清楚我使用“供 source_dirs 使用”的方式有什么问题,而不是保留所有 ada 文件的多个副本。

同样,我是 Ada/GPS 新手,所以如果我遗漏了相关信息,请告诉我。

更新:似乎具体问题不是 source_dirs 根本没有做任何事情,而是它不能处理两个源目录,其中一个目录中的 .ads 文件依赖于另一个目录中的 .ads 文件。也就是说,即使在我上面的“其他”项目中,some_other_ada_files 中依赖于 even_more_ada_files 中的 .ads 文件的 .ads 文件在我运行 gprbuild 时也不会使用 gcc -c -gnat05 命令编译(错误: even_more_ada_files 未找到),但如果我手动(或在 .bat 脚本中)运行 gcc 命令,并带有两个 -I 标志,每个目录一个标志,它确实会被编译。