Previous: Creating the Definition File, Up: Building DLLs with gnatdll
gnatdll
gnatdll
is a tool to automate the DLL build process once all the Ada
and non-Ada sources that make up your DLL have been compiled.
gnatdll
is actually in charge of two distinct tasks: build the
static import library for the DLL and the actual DLL. The form of the
gnatdll
command is
$ gnatdll [switches] list-of-files [-largs opts] |
where list-of-files is a list of ALI and object files. The object file list must be the exact list of objects corresponding to the non-Ada sources whose services are to be included in the DLL. The ALI file list must be the exact list of ALI files for the corresponding Ada sources whose services are to be included in the DLL. If list-of-files is missing, only the static import library is generated.
You may specify any of the following switches to gnatdll
:
-a[
address]
gnatdll
builds relocatable DLL. We
advise the reader to build relocatable DLL.
-b
address-bargs
opts-d
dllfilegnatdll
to do anything. The name of the generated import library is
obtained algorithmically from dllfile as shown in the following
example: if dllfile is xyz.dll
, the import library name is
libxyz.a
. The name of the definition file to use (if not specified
by option -e) is obtained algorithmically from dllfile
as shown in the following example:
if dllfile is xyz.dll
, the definition
file used is xyz.def
.
-e
deffile-g
-h
gnatdll
switch usage information.
-Idir
gnatdll
to search the dir directory for source and
object files needed to build the DLL.
(see Search Paths and the Run-Time Library (RTL)).
-k
@
nn suffix from the import library's exported
names, but keeps them for the link names. You must specify this
option if you want to use a Stdcall
function in a DLL for which
the @
nn suffix has been removed. This is the case for most
of the Windows NT DLL for example. This option has no effect when
-n option is specified.
-l
file-n
-q
-v
-largs
opts