ada相关内容

为什么 Ada 编译器会让范围违规通过?为什么我的类型声明是运行时实体?

为什么 Ada 编译器允许范围违规通过?它确实给出了警告,但是如果它在任何情况下都是错误的,为什么它让它通过呢?是否存在一种实用的行为? 最重要的是:为什么类型声明是运行时实体?我的意思是代码示例的第 3 行是我希望提前评估的内容.我认为只有第 5 行会“使它"成为可执行文件.为什么不?那东西有用吗?我是否在这里遗漏或误解了某些内容? 与 Ada.Text_IO;程序问题是子类型测试是自然 ..
发布时间:2022-01-24 19:44:48 其他开发

运行时的 Ada 泛型

如何在运行时而不是在编译时实例化泛型.不使用 new 的示例. 解决方案 如果不使用 new 就无法做到这一点.您可以在任何声明性部分中执行此操作,但是该泛型仅在该声明性部分的范围内存在. 例如(未编译的类似 ada 的伪代码): 获取(长度)宣布包堆栈是新的 stack_generic (max_stack_size => 长度);开始stack.push();...结尾;-- ..
发布时间:2022-01-22 12:26:00 其他开发

macOS Mojave 上的 GDB 错误

环境:Mac/Mojave 和 GDB 8.2.1(通过自制软件). 我按照说明工作 https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html 即: 通过brew的最新GDB,解决了可执行格式问题 用新的权利签署 GDB 此外,我还修改了 SIP 以允许调试(在 Recovery OS 终端中:csrut ..
发布时间:2022-01-20 20:05:41 其他开发

Ada 中的自定义“图像"属性?

所以我有件事. type 东西是新记录...元素...结束记录; 我有一个字符串化它的函数. function ToString(t: Thing) 返回字符串; 我希望能够告诉 Ada 将此函数用于 Thing'image,这样我的库的用户就不必考虑他们使用的是内置类型还是一件事. 但是,明显的语法: 对于 Thing'image 使用 ToString; ...不起作用. ..
发布时间:2022-01-13 18:34:28 其他开发

如何绑定到 OpenCV 进行 GNAT?

谁能告诉我如何为 GNAT 查找或创建到 OpenCV 的绑定?我想用 Ada2005 用 OpenCV(1.0 或 2.X)实现一些程序,但我不知道怎么做.有人可以教我怎么做吗? 解决方案 教你如何创建一个复杂库的绑定超出了StackOverflow,但您可以从这个教程开始.然后研究相关的 GNAT 库源,例如Ada.Numerics 和其他 现有的 Ada 绑定.其中,Ada 2005 ..
发布时间:2022-01-04 15:51:32 其他开发

使用 JNA 和 Ada 的 Interface.C 包将 Ada 动态库与 Java 接口

我必须写一个 DLL 应该提供一个简单的服务,需要: 在字符串或字节数组中(相当于 char*) IN 整数,显式 in char* 的大小 IN 相当于库用于写入数据的 char* 缓冲区 用于写入的可用 char* 缓冲区的 IN 大小 OUT 有效写入大小到 out char* 缓冲区 从 C 的角度来看,签名应该是这样的: void myService (char* ..
发布时间:2021-12-25 16:17:58 Java开发

在 Ada 中实现具有访问类型的抽象函数

我有一个名为 Statements 的包,其中包含一个名为 Statement 的抽象类型和一个名为 execute() 的抽象函数.在另一个包中,我有一个 CompoundStatement 类型,它是一个 Statement 类型,它实现了 execute() 函数. 我有一个名为 createStatement() 的函数.它的目的是评估 Unbounded_String 类型的标记并 ..
发布时间:2021-11-25 09:12:28 C#

使用 gnat 对“do_varargs"的未定义引用

编译后,当我尝试使用 win32ada 2017 和 GNAT 2017 构建我的 DLL 时,它发出错误: gnatlink -o -mdll -Wl,base-file,win32-winuser.o:win32-winuser.adb:(.text+0xa62): 对“do_varargs"的未定义引用win32-winuser.o:win32-winuser.adb:(.text+0x1 ..
发布时间:2021-10-26 16:39:44 其他开发

Ada 中的信号量

我收到了以下代码并要求我实现一个信号量. with Ada.Text_IO;使用 Ada.Text_IO;与 Id_Dispenser;带信号量;使用信号量;程序 Philos 是No_of_Philos :常数正值:= 5;冥想:恒定持续时间:= 0.0;类型 Table_Ix 是 mod No_of_Philos;Forks :Binary_Semaphore 的数组(Table_Ix)(I ..
发布时间:2021-10-26 16:39:39 其他开发

餐饮哲学家问题 Ada- 实现 ID 分配器

我有以下代码,与哲学家就餐问题有关.我对 Ada 很陌生,所以不确定如何实现 Id_Dispenser 包. with Ada.Text_IO;使用 Ada.Text_IO;与 Id_Dispenser;带信号量;使用信号量;程序 Philos 是No_of_Philos :常数正值:= 5;-- 哲学家的数量冥想:恒定持续时间:= 0.0;类型 Table_Ix 是 mod No_of_Phi ..
发布时间:2021-10-26 16:39:36 其他开发

使用 STRING_SPLIT 时如何处理索引错误?

引发 GNAT.STRING_SPLIT.INDEX_ERROR 我尝试使用 https 处理索引错误://marc.info/?l=gcc-patches&m=139022610224587&w=2.但是,它如何读取下一行.Ada 似乎没有类似于 nextLine();就像在 Java 中一样. with Ada.Text_IO;使用 Ada.Text_IO;与 GNAT.String ..
发布时间:2021-10-26 16:39:34 其他开发

未在 CentOS 8 上安装 Adacore GNATCOLL 库

我最近一直在 CentOS 7 和 Debian 9 上使用 gnatcoll 库,两个操作系统的安装过程都是一样的. 当我尝试在 CentOS 8 上进行此安装时,收到以下错误消息: [lloyd@localhost sql]$ PATH=/home/lloyd/opt/GNAT/2020/bin:$PATH[lloyd@localhost sql]$ 进行设置[lloyd@localh ..
发布时间:2021-10-26 16:39:31 服务器开发

什么是“libgnarl"?

什么是libgnarl?我在不同的地方找到了对此的引用,比如在 gcc 源代码中或 gprbuild 的详细输出中.gprbuild 专门报告关于决定 libgnarl 是否是必要的,所以它显然是一个可选库,但实际的库是什么?我找不到任何关于它的文档.源代码包含一堆看起来像是属于标准库的包,但实际上不是(例如 Ada.Execution_Time.Timers),所以很明显我遗漏了一些东西. ..
发布时间:2021-10-26 16:39:28 其他开发

无法在 GNAT 2019 社区版的 microbit 上运行 Ada 滚动文本演示

我正在尝试运行此处描述的演示:https://blog.adacore.com/ada-on-the-microbit 我仔细地遵循了教程的说明.我确实安装了 2019 版本的软件,而不是 2018 版本.GPS 似乎已安装并在我的 Windows 7 机器上运行.该项目已构建,但 pyocd-flashtool 似乎无法识别我的 microbit.它将其报告为“通用 cortex_m"并抛 ..
发布时间:2021-10-26 16:39:25 其他开发

Ada:如何访问 Vector 元素?

我有一个东西的集合,我故意想在堆上分配并“通过引用"访问它们: with Ada.Text_IO;使用 Ada.Text_IO;与 Ada.Containers.Indefine_Hashed_Maps;使用 Ada.Containers;使用 Ada.Containers;程序主要是类型 Thing_Key 是新的整数;类型事物是记录密钥:Thing_Key;数据:整数;结束记录;类型 Thi ..
发布时间:2021-10-26 16:39:22 其他开发

Ada.Containers.Functional_Maps 在 Ada2012 中可用吗?

关于Ada.Containers.Functional_Maps 在 GNAT 文档中相当——比如说——深奥. 首先,它是这样说的: ……这些容器仍然可以安全使用. 在第二段中,在我看来,一旦程序退出创建它们的上下文,您就无法释放为这些对象分配的内存.我知道您可能会遇到内存泄漏.我说得对吗? 它们也会消耗内存,因为当容器不再被引用时,分配的内存不会被回收. 解决方案 ..
发布时间:2021-10-26 16:39:19 其他开发

GNAT 社区版中没有 GNATtest?

当我尝试在 GNAT 2020 社区版(Windows 10 64 位)中生成单元测试时,我收到有关缺少 gnattest 工具的错误:could not locate gnattest.在 Ubuntu 20.04(在 WSL 中)和包 gnat-10 上也会发生同样的情况:could not locate x86_64-linux-gnu-gnattest-10. GNATtest 是否 ..
发布时间:2021-10-26 16:39:16 其他开发

数组总数的 Spark-Ada 后置条件

如何为对数组元素求和的函数编写 Spark 后置条件?(Spark 2014,但如果有人向我展示如何为早期的 Spark 做这件事,我应该能够适应它.) 如果我有: type Positive_Array 是 Positive 的数组(Positive range );函数 Array_Total(The_Array: Positive_Array) 返回正值和发布 =>Array_Tot ..
发布时间:2021-10-26 16:39:14 其他开发

如何检查输入是否为枚举类型

我正在从键盘读取输入.输入应该匹配枚举类型中定义的元素之一.下面是一个枚举类型的例子: type NameType is (Bob, Jamie, Steve); 如果我收到的输入不是这 3 个之一,Ada 将引发 IO 异常.我如何处理这个问题,我可以简单地显示“再试一次"?消息而不让程序停止? 解决方案 创建 Enumeration_IO 表示 Name_Type,比如 Name_ ..
发布时间:2021-10-26 16:39:11 其他开发

为什么字符串需要用初始值初始化?

我有一个字符串 lx : String 我想在我的代码中设置该值以供稍后在我的代码中使用,但出现错误值或显式数组边界 我还有一个字符串数组L_array : array (1 .. user_size) of String;,它在数组声明中抛出错误unconstrained element type.我无法初始化它,因为这些值是从文本文件中读取的.如果我想稍后设置这些值,我应该怎么做? ..
发布时间:2021-10-26 16:39:08 其他开发