From: Danny S. <dan...@cl...> - 2005-11-02 22:51:08
|
> -----Original Message----- > From: Stefan Bellon > Sent: Thursday, November 03, 2005 9:58 AM > > > Danny Smith wrote: > > Don't you have to hardcode this into a pragma in Ada? > > > pragma Linker_Options ("-out-implib libfoo.a"); > > No, the -Wl,--out-implib,libfoo.a is indeed passed to the linker. But > it looks like it only has an effect if (in C) functions have been > marked with __declspec(dllexport). As alternative you could provide a main.def file as linker input to specify the dllexports from your main.exe, eg ;main.def NAME main.exe EXPORTS from_main Or add -Wl,--export-all. The other way is to not bother with an import lib for main.exe but specify yout imports from main in a def file for the dll build, eg ;dll.def LIBRARY my_dll.dll RXPORTS foo doo dah IMPORTS ; [ <internal-name> = ] <module-name> . <external-name> from_main = main.exe.from_main when building dll, add dll.def to input files gcc -shared -omy_dll.dll -Wl,--out-implib,libmy_dll.dll.a dll.def dllmod.o This way is actually simpler. Since the def file will resolve the imports from main, you could build the dll and its implib at same time, rather thn chase circular dependencies between main and the dll Unfortunately the use of IMPORTS statement is not well documented and I do not think it is compatible with MSVC Danny And > Ada doesn't (to my knowledge) have an equivalent and therefore no > import library is created. :-( > > -- > Stefan Bellon > |