Gcc Ada编译缺失亚单位
我最近更新了GNAT编译器的新版本。。我正在尝试编译GNADE源代码(http://gnade.sourceforge.net/) 是否需要设置某种标志或某种方式来调试 我看到了这个错误(在gnatpro6.22下编译fine时): 这是规范源(gnu-db-sqlcli-generic\u attr-boolean\u attribute.ads)Gcc Ada编译缺失亚单位,gcc,ada,gnat,Gcc,Ada,Gnat,我最近更新了GNAT编译器的新版本。。我正在尝试编译GNADE源代码(http://gnade.sourceforge.net/) 是否需要设置某种标志或某种方式来调试 我看到了这个错误(在gnatpro6.22下编译fine时): 这是规范源(gnu-db-sqlcli-generic\u attr-boolean\u attribute.ads) -------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- --
--GNADE:gnuada数据库环境--
-- --
--作者:Juergen Pfeifer
--
--版权所有(C)2000-2001 Juergen Pfeifer
-- --
--GNADE是自由软件;您可以在下重新分发和/或修改它--
--自由软件发布的GNU通用公共许可证条款---
——陶艺基金会;第2版或(由您选择)任何更高版本---
--锡安。蚊虫的分布是希望它会有用,但是---
--提供任何担保;甚至没有对适销性的默示保证--
--或适合某一特定目的。请参阅GNU通用公共许可证--
--更多细节。你应该已经收到了一份GNU将军的副本--
--与GNAT一起分发的公共许可证;请参阅文件复制。如果没有,请写信--
——自由软件基金会,波士顿59庙宇套房330,
--MA 02111-1307,美国--
-- --
--作为一个特殊的例外,如果其他文件从这个--
--或将此单元与其他文件链接以生成可执行文件--
--此单元本身不会导致生成的可执行文件--
--由GNU通用公共许可证覆盖。这一例外并不存在--
--但是,请确认可执行文件可能被删除的任何其他原因--
--由GNU公共许可证覆盖--
-- --
--GNADE的实现是为了与gnuada编译器GNAT协同工作--
-- --
-------------------------------------------------------------------------------
通用的
类型Bool_类型为mod;
包GNU.DB.SQLCLI.Generic\u Attr.Boolean\u属性为
类型属性\值\对\布尔\标量是新属性\值\对
具有
记录
值:布尔值;
结束记录;
函数到字符串(对象:属性值对布尔标量)
返回字符串;
函数GetAttr(句柄:上下文;
属性:T;
数据:Aux;
MaxLength:SQLSMALLINT:=0;
错误代码:access(返回)
返回属性\值\对\布尔\标量;
过程SetAttr(句柄:在上下文中;
AV_对:在属性_值_对_布尔值_标量中;
数据:在Aux中;
错误代码:out SQLRETURN);
私有的
默认长度:常量基数:=基数(长度指示符(布尔类型大小));
end GNU.DB.SQLCLI.Generic\u Attr.Boolean\u属性;
以下是正文源(gnu-db-sqlcli-generic\u attr-boolean\u attribute.adb)
-------------------------------------------------------------------------------
-- --
--GNADE:gnuada数据库环境--
-- --
--作者:Juergen Pfeifer
--
--版权所有(C)2000-2003 Juergen Pfeifer
-- --
--GNADE是自由软件;您可以在下重新分发和/或修改它--
--自由软件发布的GNU通用公共许可证条款---
——陶艺基金会;第2版或(由您选择)任何更高版本---
--锡安。蚊虫的分布是希望它会有用,但是---
--提供任何担保;甚至没有对适销性的默示保证--
--或适合某一特定目的。请参阅GNU通用公共许可证--
--更多细节。你应该已经收到了一份GNU将军的副本--
--与GNAT一起分发的公共许可证;请参阅文件复制。如果没有,请写信--
——自由软件基金会,波士顿59庙宇套房330,
--MA 02111-1307,美国--
-- --
--作为一个特殊的例外,如果其他文件从这个--
--或将此单元与其他文件链接以生成可执行文件--
--此单元本身不会导致生成的可执行文件--
--由GNU通用公共许可证覆盖。这一例外并不存在--
--但是,请确认可执行文件可能被删除的任何其他原因--
--由GNU公共许可证覆盖--
-- --
--GNADE的实现是为了与gnuada编译器GNAT协同工作--
-- --
-------------------------------------------------------------------------------
使用Ada.u转换;
通过System.Address\u到\u Access\u的转换;
包体GNU.DB.SQLCLI.Generic\u Attr.Boolean\u属性为
函数到\u字符串(对象:属性\u值
gnatmake -g -O0 -fstack-check -pipe -gnatE -gnatU -gnatwl -gnatf -gnatE -gnat05 -p -PLibBuildGNADE.gpr
gcc -c -fPIC -g -O0 -fstack-check -pipe -gnatE -gnatU -gnatwl -gnatf -gnatE -gnat05 -I- -gnatA /home/user1/GNADE/src/gnu-db-sqlcli-generic_attr-boolean_attribute.adb
cannot generate code for file gnu-db-sqlcli-generic_attr-boolean_attribute.adb (missing subunits)
-------------------------------------------------------------------------------
-- --
-- GNADE : GNu Ada Database Environment --
-- --
-- Author : Juergen Pfeifer <juergen.pfeifer@gmx.net>
--
-- Copyright (C) 2000-2001 Juergen Pfeifer
-- --
-- GNADE is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- ware Foundation; either version 2, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with GNAT; see file COPYING. If not, write --
-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
-- MA 02111-1307, USA. --
-- --
-- As a special exception, if other files instantiate generics from this --
-- unit, or you link this unit with other files to produce an executable, --
-- this unit does not by itself cause the resulting executable to be --
-- covered by the GNU General Public License. This exception does not --
-- however invalidate any other reasons why the executable file might be --
-- covered by the GNU Public License. --
-- --
-- GNADE is implemented to work with GNAT, the GNU Ada compiler. --
-- --
-------------------------------------------------------------------------------
generic
type Bool_Type is mod <>;
package GNU.DB.SQLCLI.Generic_Attr.Boolean_Attribute is
type Attribute_Value_Pair_Boolean_Scalar is new Attribute_Value_Pair
with
record
Value : Boolean;
end record;
function To_String (Object : Attribute_Value_Pair_Boolean_Scalar)
return String;
function GetAttr (Handle : Context;
Attribute : T;
Data : Aux;
MaxLength : SQLSMALLINT := 0;
ErrorCode : access SQLRETURN)
return Attribute_Value_Pair_Boolean_Scalar;
procedure SetAttr (Handle : in Context;
AV_Pair : in Attribute_Value_Pair_Boolean_Scalar;
Data : in Aux;
ErrorCode : out SQLRETURN);
private
Default_Len : constant Base := Base (Length_Indicator (Bool_Type'Size));
end GNU.DB.SQLCLI.Generic_Attr.Boolean_Attribute;
-------------------------------------------------------------------------------
-- --
-- GNADE : GNu Ada Database Environment --
-- --
-- Author : Juergen Pfeifer <juergen.pfeifer@gmx.net>
--
-- Copyright (C) 2000-2003 Juergen Pfeifer
-- --
-- GNADE is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- ware Foundation; either version 2, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with GNAT; see file COPYING. If not, write --
-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
-- MA 02111-1307, USA. --
-- --
-- As a special exception, if other files instantiate generics from this --
-- unit, or you link this unit with other files to produce an executable, --
-- this unit does not by itself cause the resulting executable to be --
-- covered by the GNU General Public License. This exception does not --
-- however invalidate any other reasons why the executable file might be --
-- covered by the GNU Public License. --
-- --
-- GNADE is implemented to work with GNAT, the GNU Ada compiler. --
-- --
-------------------------------------------------------------------------------
with Ada.Unchecked_Conversion;
with System.Address_To_Access_Conversions;
package body GNU.DB.SQLCLI.Generic_Attr.Boolean_Attribute is
function To_String (Object : Attribute_Value_Pair_Boolean_Scalar)
return String is
begin
return Boolean'Image (Object.Value);
end To_String;
function GetAttr (Handle : Context;
Attribute : T;
Data : Aux;
MaxLength : SQLSMALLINT := 0;
ErrorCode : access SQLRETURN)
return Attribute_Value_Pair_Boolean_Scalar
is
pragma Unreferenced (MaxLength);
package P is new System.Address_To_Access_Conversions (Bool_Type);
Value : aliased Bool_Type;
Len : Base := Default_Len;
Res : Boolean := False;
begin
Get (Handle,
Attribute,
To_SQLPOINTER (P.To_Address
(P.Object_Pointer'(Value'Access))),
Len,
Data,
ErrorCode);
if Value /= 0 then
Res := True;
end if;
return Attribute_Value_Pair_Boolean_Scalar'
(Attribute => Attribute,
Value => Res);
end GetAttr;
procedure SetAttr (Handle : in Context;
AV_Pair : in Attribute_Value_Pair_Boolean_Scalar;
Data : in Aux;
ErrorCode : out SQLRETURN)
is
function Cvt is new Ada.Unchecked_Conversion (SQLINTEGER, SQLPOINTER);
Len : constant Base := Default_Len;
Val : aliased Bool_Type := 0;
begin
if AV_Pair.Value then
Val := 1;
end if;
Set (Handle, AV_Pair.Attribute,
Cvt (SQLINTEGER (Val)),
Len,
Data,
ErrorCode);
end SetAttr;
end GNU.DB.SQLCLI.Generic_Attr.Boolean_Attribute;