This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Creating a dll problem.

If anyone has corrections to the following please post.
B19 should make fixup.o unnecessary!! whenever it gets here ;^)

>dlltool --def mylib.def --output-exp mylib.exp --dllname mylib.dll

should add -k to the above line. (-mrtd invalidates this?)
must fix all prototypes for libcygwin.a functions with __cdecl to use -mrtd
-mrtd is only useful on the compile line, not the link line.

gcc -Wl,--subsystem,windows,--dll,-e,DllMain -o mylib.dll fixup.o libXXX etc..
and include fixup.o in the link
----------- cut here -------------
#ifdef  __CYGWIN32__
         * This section terminates the list of dll imports under cygwin32.
	 * do !!!NOT!!! use this generated .o file with mingw32, it is already
	 * included in the startup files.
	 * main is included to make it possible to link your dll with
	 * -lcygwin, which as far as I can tell you MUST do if your .exe
	 * links with it.
	 * you could also include this under *startfile: in cygwin32 specs, as
crt0%O%s %{dll:fixup%O%s}

for use with the -dll gcc command line switch
you may also want to use

%{windows:--subsystem windows} %{console:--subsystem console} %{dll:--dll -e _dll_entry@12}}
										^^ or whatever your DllMain is named
         * do NOT insert or delete any lines.
         * If you do not include this then you will have problems
         * when linking with DLLs.
asm (".section .idata$3\n" ".long 0,0,0,0,0,0,0,0");

int main(){ return 0; } 
----------- end cut here -------------

On Mon, 17 Nov 1997 16:10:25 +1300, you wrote:

>I have a number of C libraries that I want to make into a dll that can
>be callable from VB5.
>I created a DEF file called mylib.def
>I ran dlltool as follows,
>dlltool --def mylib.def --output-exp mylib.exp --dllname mylib.dll
>I then tried to create the mylib.dll using,
>gcc -o mylib.dll libmy1.a libmy2.a -dll -mrtd
>I then get the error,
>cc: undefined reference to `WinMain@16'
>What am I doing wrong (or even right)?
>The libmy1.a and libmy2.a are simple C modules performing normal C
>processing. (I have even performed the above with a couple of dummy
>modules that just add a number).
>Ian Collins. 
>For help on using this list (especially unsubscribing), send a message to
>"" with one line of text: "help".

delete REMOVETHIS from the above to reply
For help on using this list (especially unsubscribing), send a message to
"" with one line of text: "help".

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]