Re: Problems compiling addrow with gcc-mingw (windows).
- To: mathgroup at smc.vnet.net
- Subject: [mg111336] Re: Problems compiling addrow with gcc-mingw (windows).
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Wed, 28 Jul 2010 02:53:12 -0400 (EDT)
Hi, I don't know from here what exactly is required for compiling under cygwin but you maybe have the wrong subsystem defined. Does your main-function in the addtwo.tm look like that: int __stdcall WinMain( HINSTANCE hinstCurrent, HINSTANCE hinstPrevious, LPSTR lpszCmdLine, int nCmdShow) { char buff[512]; char FAR * buff_start = buff; char FAR * argv[32]; char FAR * FAR * argv_end = argv + 32; if( !MLInitializeIcon( hinstCurrent, nCmdShow)) return 1; MLScanString( argv, &argv_end, &lpszCmdLine, &buff_start); return MLMain( argv_end - argv, argv); } Then you maybe need to set -mwindows or -mwin32 or you substitute int main(int argc; char* argv[]) { return MLMain(argc, argv); } as main function and create a console application. I'm not sure if this really is the problem but you could additionally read this here http://forums.wolfram.com/mathgroup/archive/2007/Jun/msg01337.html http://forums.wolfram.com/mathgroup/archive/2010/May/msg00452.html Cheers Patrick On Tue, 2010-07-27 at 10:52 -0300, Eduardo M. A. M.Mendes wrote: > Hi again > > Thanks for the patience. > > I don't know if I got what you meant so I tied the following commands > > a) mprep addtwo.tm -o addtwotm.c (page 48 of MathLink Development in C) > b) then I try > > C:\msys\1.0\home\eduardo\MATHLI~1\addtwo>g++ > -Ic:/msys/1.0/home/eduardo/include > addtwotm.c -o addtwo.exe -Lc:/msys/1.0/home/eduardo/lib -lML32i3 -lML32i2 > -lML3 > i1 > C:\Users\eduardo\AppData\Local\Temp\ccelsS8E.o:addtwotm.c:(.text+0x15b): > undefi > ed reference to `GetStockObject@4' > collect2: ld returned 1 exit status > > c) and > > C:\msys\1.0\home\eduardo\MATHLI~1\addtwo>g++ > -Ic:/msys/1.0/home/eduardo/include > addtwo.c -o addtwo.exe -Lc:/msys/1.0/home/eduardo/lib -lML32i3 -lML32i2 > -lML32i > > C:\Users\eduardo\AppData\Local\Temp\cc2EukU7.o:addtwo.c:(.text+0x3a): > undefined > reference to `MLInitializeIcon' > C:\Users\eduardo\AppData\Local\Temp\cc2EukU7.o:addtwo.c:(.text+0x96): > undefined > reference to `MLMain' > collect2: ld returned 1 exit status > > > Which one is the right one? The Documentation is too convoluted and there > is no help with cygwin. > > Many thanks > > Ed > > > -----Original Message----- > From: Patrick Scheibe [mailto:pscheibe at trm.uni-leipzig.de] > Sent: Tuesday, July 27, 2010 10:17 AM > To: Eduardo M. A. M.Mendes > Cc: mathgroup at smc.vnet.net > Subject: Re: [mg111326] Problems compiling addrow with gcc-mingw (windows). > > Hi, > > why are you giving > > > addtwo.c addtwotm.c > > > both files? You mprep addtwo.tm into addtwo.c and > then use only addtwo.c to compile. This should kill the > multiple references error message. > > Cheers > Patrick > > Am Jul 27, 2010 um 1:53 PM schrieb Eduardo M. A. M.Mendes: > > > Hello > > > > > > > > I am trying to get addwo.exe using gcc (or g++) that comes with > > mingw. I > > have all libs and includes from cygwin that come with Mathematica > > (Mathlink) > > installed in a different dir structure but unfortunately I got the > > following > > error > > > > > > > > > > > > C:\msys\1.0\home\eduardo\MATHLI~1\addtwo>g++ > > -Ic:/msys/1.0/home/eduardo/include > > > > addtwo.c addtwotm.c -o addtwo.exe -Lc:/msys/1.0/home/eduardo/lib - > > lML32i3 > > > > C:\Users\eduardo\AppData\Local\Temp\ccYUOj6v.o:addtwotm.c:(.text > > +0x285): > > multip > > > > e definition of `addtwo(int, int)' > > > > C:\Users\eduardo\AppData\Local\Temp\ccNPhnOo.o:addtwo.c:(.text+0x0): > > first > > defi > > > > ed here > > > > C:\Users\eduardo\AppData\Local\Temp\ccYUOj6v.o:addtwotm.c:(.text > > +0x293): > > multip > > > > e definition of `WinMain@16' > > > > C:\Users\eduardo\AppData\Local\Temp\ccNPhnOo.o:addtwo.c:(.text+0xe): > > first > > defi > > > > ed here > > > > C:\Users\eduardo\AppData\Local\Temp\ccYUOj6v.o:addtwotm.c:(.text > > +0x15b): > > undefi > > > > ed reference to `GetStockObject@4' > > > > collect2: ld returned 1 exit status > > > > > > > > Does anyone know what to sort this out? > > > > > > > > Many thanks > > > > > > > > Ed > > > > > >