This is the mail archive of the cygwin 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]

How to update official cygwin documentation for g77 and gcc? (was: RE: need -mrtd to create Excel DLL?)


Lester,
 Yeah, I did the same (with regard to __declspec keywords). Odd, Excell
won't read the DLL but C# will! I was just using Excell because it was handy
to test with. Good thing I really don't need excel. My real concern is
calling g77 from C# (which works). I got C# to call gcc too under cygwin.
Too bad my email wrapped my carefully prepared sample source code.

So our examples should go into the cygwin documentation! How can these be
inserted into to the documentation? Can someone tell us? Surely there will
be others who don't want to buy the Microsoft C++ or FORTRAN compilers but
want their C/FORTRAN code to interact with other Microsoft languages like
C#, VB.NET, Javascript.NET, J#.

Incidentally, I did discover that Microsoft is giving away their C/C++
compiler these days. It is part of the .NET Framework SDK (go to
http://search.microsoft.com to look for it). This free version of the
compiler seems to be able to compile C++ but does not have the standard C++
header files, only the standard C header files. I assume folks would still
prefer g77/gcc to Microsoft's, however. Oopss -- that is off topic. Sorry...



   Siegfried

-----Original Message-----
From: cygwin-owner@cygwin.com [mailto:cygwin-owner@cygwin.com] On Behalf Of
Lester Ingber
Sent: Tuesday, July 13, 2004 1:34 PM
To: cygwin@cygwin.com
Subject: Re: need -mrtd to create Excel DLL?

Siegfried:

Hi. I did not use any __declspec keywords, etc. -- just vanilla C
code which runs as well under gcc or g++ under Cygwin, FreeBSD, or
SPARC/Solaris, etc.  Creating DLLs is another matter -- I've just tested
this using Cygwin/gcc under XP Pro.  As I said, I cannot get this to
work under Cygwin/g++.

I tested the application with Excel using the dlltest.xls file in
http://www.xraylith.wisc.edu/~khan/software/gnu-win32/
but without the other modifications in his cdll.[ch] files.
To use his dlltest.xls, I named my DLL the same, and created
double dll_double_square (double d)
as one of my functions which called a series of other functions in other
files before returning.

I used the following lines in my Makefile.  No other special code changes
were required in any of my .c or .h files:

CC = gcc
MY_OBJS = \
[.o files]

DLL_OPTION=-mrtd # needed for Excel DLL
CYGWIN_OPTION=-mno-cygwin $(DLL_OPTION)
CDEBUGFLAGS = -g -O2 -Wall
CFLAGS = $(CDEBUGFLAGS) $(CYGWIN_OPTION)

dllmodule = cdll
obj_libs = $(MY_OBJS)
dependency_libs = -lm

# no need for run.exe when creating DLLs -- without a main()
compile: $(MY_OBJS)
	@$(CC) -o run.exe $(MY_OBJS) ${dependency_libs}

cdll:
	make -i compile
	$(CC) $(CFLAGS) -shared -o ${dllmodule}.dll \
	-Wl,--out-implib=${dllmodule}.lib \
	-Wl,--compat-implib \
	-Wl,--add-stdcall-alias \
	-Wl,--enable-stdcall-fixup \
	-Wl,--enable-auto-import \
	-Wl,--enable-auto-image-base \
	-Wl,--whole-archive ${obj_libs} \
	-Wl,--export-all-symbols \
	-Wl,--output-def=${dllmodule}.def \
	-Wl,--no-whole-archive ${dependency_libs}

Lester

: Lester,
:  It works! Thank you. Assuming these will be archived, maybe this can help
: someone else.
: 
: Since I'm wondering if Excel was caching something, I decided to use C#
and
: it works!
: 
:  Thanks,
:     Siegfried
: 
: Here is the example of calling cygwin C from C#:

:: I was able to create a dll from many C files, representing fairly complex
:: calculations, using the following in my Makefile, without having to add
:: any keywords like "__declspec", using info from the Cygwin docs.
:: ...
:: Lester


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.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]