我正在尝试编写一个只做共同除法的 Ada DLL。问题是我无法创建 DLL,因为 Ada 中的除法接缝使用和异常(可能检查分母是否非零),因此当我尝试创建 DLL 时给我以下错误消息:
C:\Programs\GPS\Math>gcc -shared -shared-libgcc -o math.dll division.o
division.o:division.adb:(.text+0x1f): undefined reference to
`__gnat_rcheck_CE_Divide_By_Zero'
collect2.exe: error: ld returned 1 exit status
我的 divison 包如下所示:
-- division.ads
package Division is
function Div
(A : INTEGER;
B : INTEGER)
return INTEGER;
pragma Export (CPP, Div);
end Division;
--division.adb
package body Division is
function Div(A : INTEGER; B : INTEGER) return INTEGER is
X : INTEGER := A/B;
begin
return X;
end Div;
end Division;
是否可以通过某种方式创建此 DLL?我对 Ada 完全陌生,所以请保持简单。