This is the mail archive of the cygwin@cygwin.com 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]
Other format: [Raw text]

GetModuleHandle@4


I adapted the script made by John Cerney;
http://cygwin.com/building-reloc-dlls.txt
into this Makefile:
#---------------------------------------------------------------------------
------------------------------------------------
LIBPATH= /lib
SOURCES= foo.c foo2.c
OBJECTS= $(SOURCES:%.c=%.o)

all: $(OBJECTS) init.o fixup.o
	echo EXPORTS > fooB.def
	nm $? | grep '^........ [T] _' | sed 's/[^_]*_//' >> fooB.def
	ld --base-file fooB.base --dll -o fooB.dll $? $(LIBPATH)/libcygwin.a -e
_dll_entry@12
	dlltool --as=as --dllname fooB.dll --def fooB.def --base-file
fooB.base --output-exp fooB.exp
	ld --base-file fooB.base fooB.exp --dll -o fooB.dll foo.o foo2.o init.o
fixup.o $(LIBPATH)/libcygwin.a -e _dll_entry@12
	dlltool --as=as --dllname fooB.dll --def fooB.def --base-file
fooB.base	--output-exp fooB.exp
	ld fooB.exp --dll -o fooB.dll foo.o foo2.o init.o fixup.o
$(LIBPATH)/libcygwin.a -e _dll_entry@12
	dlltool --as=as --dllname fooB.dll --def fooB.def --output-lib fooB.a
	gcc main.c fooB.a -o main.exe
#---------------------------------------------------------------------------
------------------------------------------------
It worked.
Aferwards I tried to use it in my own Makefile:
#---------------------------------------------------------------------------
------------------------------------------------
SOURCES= TWU_read_signal_interlaced.c idl_TWU_read_signal_interlaced.c
idl_TWU_read_signal.c idl_TWU_read_image.c \
	idl_TWU_read_condition.c idl_TWU_read_comment.c
OBJECTS= $(SOURCES:%.c=%.o)
exp: $(OBJECTS) init.o fixup.o $(TWU_ARCHIVE) $(LIBIDL) /lib/libcygwin.a
	echo EXPORTS > $(NAME).def
	nm $? | grep '^........ [T] _' | sed 's/[^_]*_//' >> $(NAME).def
	$(LD) --base-file $(NAME).base --dll -o $(NAME).dll $? -e _dll_entry@12
#---------------------------------------------------------------------------
------------------------------------------------
$(LIBIDL) is a win32 library.
but after this $(LD) line I get GetModuleHandle@4 as a linker error
(unreferenced symbol) in /libcygwin.a.
Should I use MinGW? Or am I doing something completely revolting by linking
against a win32 library...

***



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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