Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Siegfried Heintze" To: Subject: How to update official cygwin documentation for g77 and gcc? (was: RE: need -mrtd to create Excel DLL?) Date: Tue, 13 Jul 2004 13:53:21 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In-Reply-To: <20040713193336.GA2648@ingber.com> Message-Id: <200407131355937.SM01156@fasolt> X-IsSubscribed: yes 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 AT cygwin DOT com [mailto:cygwin-owner AT cygwin DOT com] On Behalf Of Lester Ingber Sent: Tuesday, July 13, 2004 1:34 PM To: cygwin AT cygwin DOT 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/