From e929beed06e43151e2f91b34962c405e05fabb3a Mon Sep 17 00:00:00 2001 From: Clemens Fruhwirth Date: Wed, 10 Oct 2007 07:44:15 +0000 Subject: [PATCH] Update documentation for win32 DLL linking --- docs/users_guide/win32-dlls.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/users_guide/win32-dlls.xml b/docs/users_guide/win32-dlls.xml index 11eaeff..1589821 100644 --- a/docs/users_guide/win32-dlls.xml +++ b/docs/users_guide/win32-dlls.xml @@ -294,7 +294,7 @@ option on all the Haskell modules that make up your application. Creating a Win32 DLL -––mk-dll +––shared Sealing up your Haskell library inside a DLL is straightforward; compile up the object files that make up the library, and then build the DLL by issuing a command of the form: @@ -302,12 +302,12 @@ the DLL by issuing a command of the form: -ghc ––mk-dll -o foo.dll bar.o baz.o wibble.a -lfooble +ghc ––shared -o foo.dll bar.o baz.o wibble.a -lfooble -By feeding the ghc compiler driver the option , it +By feeding the ghc compiler driver the option , it will build a DLL rather than produce an executable. The DLL will consist of all the object files and archives given on the command line. @@ -347,12 +347,12 @@ you compile into a DLL must have a common root. By default, the entry points of all the object files will be exported from -the DLL when using . Should you want to constrain +the DLL when using . Should you want to constrain this, you can specify the module definition file to use on the command line as follows: -ghc ––mk-dll -o .... -optdll––def -optdllMyDef.def +ghc ––shared -o .... MyDef.def See Microsoft documentation for details, but a module definition file @@ -371,22 +371,22 @@ EXPORTS -In addition to creating a DLL, the option also +In addition to creating a DLL, the option also creates an import library. The import library name is derived from the name of the DLL, as follows: -DLL: HScool.dll ==> import lib: libHScool_imp.a +DLL: HScool.dll ==> import lib: libHScool.dll.a The naming scheme may look a bit weird, but it has the purpose of allowing the co-existence of import libraries with ordinary static libraries (e.g., libHSfoo.a and -libHSfoo_imp.a. +libHSfoo.dll.a. Additionally, when the compiler driver is linking in non-static mode, it will rewrite occurrence of on the command line to -. By doing this for you, switching from +. By doing this for you, switching from non-static to static linking is simply a question of adding to your command line. @@ -485,7 +485,7 @@ ghc -c dllMain.c Construct the DLL: -ghc ––mk-dll -o adder.dll adder.o adder_stub.o dllMain.o +ghc ––shared -o adder.dll adder.o adder_stub.o dllMain.o -- 1.7.10.4