快乐案例
我已经成功地在Ada中编译了一个最小的hello world窗口DLL,并通过FFI接口使用了它:
package MY_FFI is
procedure Hello_World
with
Export => True,
Convention => C,
External_Name => "hello_world";
end MY_FFI;
package body MY_FFI is
procedure Hello_World is
b
我的代码是:
with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
begin
Put_Line ("Hello, world!");
end Hello;
GNAT生成.o和.ali。
I类型
gcc hello.o -o hello
GCC抱怨道:
/usr/lib/gcc/i686-linux-gnu/6/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
我是一个实习生,任务是将一个测试应用程序从Solaris移植到Red Hat。该应用程序是用Ada编写的。它在Unix端运行得很好。我在Linux端编译了它,但现在它给了我一个seg错误。我运行调试器来查看故障所在,并得到以下结果:
Warning: In non-Ada task, selecting an Ada task. => runtime tasking structures have not yet been initialized. <non-Ada task> with thread id 0b7fe46c0 process received signal
从ada程序生成linux命令行
嗨,我需要从ada程序中生成一个linux命令行--命令行是chmod 777 mem.bat (它使mem.bat可执行),它来自同一个ada程序,其中mem.bat是我需要运行的批处理文件,该批处理文件是在刚才由ada程序创建的mem.bat创建之后运行的。以下是实现这一目标的主要代码行
-- I use something like these
with Gnat.Os_Lib;
use Gnat.Os_Lib;
Command_1 : constant String := "chmod 777 mem.bat";
Args :=
我习惯于使用Win32Ada库来调用我为Windows创建的终端程序的系统调用。系统调用足以在控制台上实现所需的控制,但Ada标准库中的任何内容都无法实现。检查GPS社区版的源码列表,我发现Win32Ada丢失了。我已经准备好继续使用Win32Ada,但是它的排除(几年前Linux版本的POSIX排除就是这种情况)暗示着有一种更好的方法来实现低级接口。有没有人能给我最简单的代码或参考资料,告诉我从现在起我将如何以支持的方式与Windows交互? 前面的示例: pragma Ada_2012;
with Win32;
with Ada.Text_IO;
...
我正试图从Linux (Fedora 29)交叉编译一个以Windows为目标的Ada程序。我对编译一无所知,也帮不了我我更喜欢在项目文件中使用开关,并尽可能简单地使用命令。我该怎么办?
我尝试了gprbuild -P logfilter.gpr --target=Windows,这导致了
Error: no compiler found for language 'c', target = Windows, default runtime
Error: no compiler found for language 'ada', target = Windows
我正试图将名为"Arr“的整数数组传递给函数"collect”。一旦用户输入100个整型数,或者给出值为0或负数,数组将停止收集。我做错了什么?
with Ada.Text_IO, Ada.Integer_Text_IO; use Ada.Text_IO;
procedure helloworld is
procedure PrintHelloWorld is
begin
Put_Line ("Enter Integers, up to 100 individual ints.");
end PrintHelloWorld;
我最近发现了Ada编程语言,但这个问题在C编程语言中也存在。换页不能按预期工作。
Ada示例:
with Ada.Text_IO; use Ada.Text_IO;
procedure Main is
begin
New_Page;
end Main;
在C中也是如此:
#include <stdio.h>
int main (void) {
printf ("\f");
return 0;
}
这两种方法在XTerm和Linux console (都使用zsh)上只产生一个新行。它们应该像Ctrl-L一样清除屏幕。
调用时
# ./main | c
我刚刚安装了ahven,但是如果我用Ahven.Framework编译测试程序,我总是得到一个编译器错误:
file "ahven.ads" not found
我的ahven文件就在这里:
/opt/ada/include/ahven/ahven.ads
/usr/share/ada/adainclude/ahven/ahven.ads
我怎样才能告诉gnat去哪里搜索呢?
编辑:我在Linux上使用gnatmake,没有任何项目文件。
为BBC Microbit做一个小游戏。 with Ada.Numerics.Discrete_Random reports "Ada.Numerics" is not a predefined library unit. Ada是否提供了在BBC MicroBit上生成随机数的另一种方法?arch/ARM/Nordic/svd/nRF51/nRF51Svd-rng定义一个随机数生成器记录RNG_Peripheral。这是我要搜索的东西,还是只用于蓝牙? GPS 2018 (20180528) hosted on x86_64-pc-linux-gnu
GNAT Commun
我正在创建一个带有帖子和标签的小Django应用程序。但是我对我的urls模型-视图有一些问题。我不明白为什么在我的应用程序中,我会得到这个错误:'python‘,这是基数为10的int()的无效文本。这里的"python“是一个标签。我的文件: models.py:
class Category(models.Model):
name = models.CharField(max_length=55)
def __unicode__(self):
return u"%s" %(self.name)
class Post(
完全初学者到阿达这里。我正在尝试编译和运行一个简单的Ada程序,从这里开始:
以下是代码:
-- Demonstrate a trivial procedure, with another nested inside.
with Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO;
procedure Compute is
procedure Double(Item : in out Integer) is
begin -- procedure Double.
Item := Item *
我正在构建我自己的Ada运行时系统。
但是,只有当自定义运行时名为'gnat‘并编译为'libgnat.a’时,才能再次链接自定义运行时,如果我称它为“libgnat.a”,则会得到ld错误:
/home/mark/opt/GNAT/2021/bin/../libexec/gcc/x86_64-pc-linux-gnu/10.3.1/ld:找不到-lgnat
对于如何配置它,我可以使用不同的名称,有什么想法吗?
下面是运行时的项目文件(大部分来自OSdev)
project milo is
for Languages use ("Ada");
f
我的目标是在括号内打印具有N个节点的所有形式的树,这些树可以用上下文无关语法定义如下:
T→树为空
T→(T.T)一个具有左右子节点的节点
例如,具有3个节点的所有树看起来都如下所示:
(.))
((.(.))
((.))
()
(.(.()
我用Ada写了以下代码,
with Ada.Containers; use Ada.Containers;
with Ada.Containers.Vectors;
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Command_Line;
procedure Ass1 is
X: Positive
我正在尝试使用GNAT CE 2019年查询PostgreSQL数据库。我的数据库里有两张桌子,一张是车,一张是人:
mydb1-# \dt
List of relations
Schema | Name | Type | Owner
--------+--------+-------+----------
public | car | table | postgres
public | person | table | postgres
(2 rows)
我想使用一个简单的Select语句,当我在我的终端中使用psql执行此操作时,返回的内容如下:
我第一次安装FreeBSD时遇到了问题。正如我在GNU/Linux中所做的一样,我创建了独立的主分区和根分区。我遇到的问题是我的主分区没有挂载。
幸运的是,当引导失败时,它只是在根提示符下转储我,但不幸的是,在重新挂载/ as读-写而不仅仅是只读之后,我不能将/dev/ada0p3 (我的/home分区)挂载为/home,或者其他任何东西。
我得到的确切错误是mount /dev/ada0p3: No such file or directory,但是一个快速的ls /dev/显示ada0p3确实在那里,gpart show确认设备ada0上的分区3是freebsd,是185 get,这是我分
我已经在windows10上安装了gnat gpl 2016,并尝试用gnatmake编译以下(小)程序。问题是,由于从libc导入了一个函数,该任务似乎比简单的gnatmake.exe、gsh_repl.adb、gnatmake在linux上编译要复杂得多--在最坏的情况下,添加-lglibc就足够了。我的问题是,我不知道我应该添加哪个选项来使链接阶段成功完成。这是一个程序:
with Ada.Text_IO;
with System;
procedure GSH_Repl is
function System (Command : in String) return Integer