问题标签 [gprbuild]

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 回答
66 浏览

gcc - 将 math.h 与 gprbuild 链接

我正在尝试构建一个调用 C 代码的 Ada 应用程序。C 代码使用sqrt来自的函数math.h。如果我删除对 的调用sqrt,则编译和链接将完美运行。当我尝试sqrt调用时,链接器告诉我undefined reference to sqrt.

这是我的 gpr 文件:

我认为解决方案是for Default_Switches("C") use ("-lm");,但它仍然不起作用。

0 投票
1 回答
74 浏览

cuda - 如何在 gprbuild 中使用 nvcc?

我在 Ada 中有一个代码,必须使用 CUDA 而不使用 Ada 绑定。所以我做了一个接口,允许Ada程序调用C代码。现在我想编译它。

如何告诉 gprbuild 不要使用 gcc.cu通过 nvcc 编译文件?如果不可能,也许我必须使用 nvcc 生成对象,然后将它们与 ada 代码链接?你会怎么做?

编辑:使用 Simon Wright 提供的链接,我制作了这个 gpr 文件:

编译运行良好,但链接器返回此错误:

cuda_interface.adb:

内核.cuh

内核.cu

0 投票
1 回答
155 浏览

gcc - 使用 gprbuild 将目标文件链接到项目

我使用nvcc以下 bash 脚本从我的项目中创建了一个目标文件:

在我obj的文件夹中,我得到一个link.o文件。我需要使用 gprbuild 将此文件链接到我的 Ada 项目。如果不使用 nvcc 的单独编译模式,我可以完美地编译出 Ada-Cuda 项目。但是现在,由于我需要单独的编译模式,我必须找到一种link.o与项目的其余部分链接的方法。这是.gpr文件:

这是我得到的错误

0 投票
1 回答
97 浏览

ada - gprbuild 项目文件中是否可以有文件通配符?

我有一个项目,我经常在某个目录中创建很多新的主入口点 *.adb 文件。有什么方法可以使用 gprbuild 设置我的项目,以便添加新的主程序不需要编辑 .gpr 项目文件?

目前,我有这个,每次添加新的时候都需要修改电源列表:

但我想做的只是说里面的每个 .adb 文件src/examples都应该被视为一个主文件。

完整的项目在这里,以防万一。

0 投票
0 回答
126 浏览

ada - 为什么 gprbuild 在 Linux 和 Windows 上构建库时表现不同?

我正在使用以下选项将动态 Ada 库从 Windows 移植到 CentOS 7:

在 Windows 上,gprbuild 首先编译 my_lib_interface,然后继续编译所有带有的单元。这意味着如果一个文件存在于 Source_Dirs 但未被任何人使用,它将被忽略。在 CentOS 上,gprbuild 编译每个文件,显然是按字母降序排列(?)并导致编译错误,因为有些文件不应该编译(这是一个大项目,我无法完全控制目录) .

为什么 gprbuild 的行为不同?有没有办法在不从项目中排除未使用的源文件的情况下获得 Windows 行为?

0 投票
0 回答
30 浏览

gprbuild - GPRBUILD 和多文件后缀(.cc、.cpp)

GNAT 项目文件 (.gpr) 允许为编译指定源代码的后缀。例如:

但是在某些情况下,例如 C++,当代码来自多个来源(通常是.cc .cpp)时,您可能需要支持多个后缀。

知道怎么做吗?