Re: Problems compiling addrow with gcc-mingw (windows).
- To: mathgroup at smc.vnet.net
- Subject: [mg111354] Re: Problems compiling addrow with gcc-mingw (windows).
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Wed, 28 Jul 2010 07:25:48 -0400 (EDT)
Hi, now you have a MathLink program. You could use it either by: - starting it as you did. the window pops up, asking you for a name for your link. My favorite one is "blub". So type in a name and klick ok. - go in a Mathematia-notebook and call lnk=Install[LinkConnect["blub"]] and you get a LinkObject. You can look what functions are provided by the link with LinkPatterns[lnk] you should now be able to call AddTwo[1,2] and to uninstall the link with Uninstall[lnk] The other possibility (which you should use when your program is bugfree and finished) is to Install the link directly with lnk=Install["full\path\to\link\addtwo.exe"] Thats it. Please check in the documentation-center the doc for Install Uninstall LinkConnect Cheers Patrick On Tue, 2010-07-27 at 22:03 -0300, Eduardo M. A. M.Mendes wrote: > Hi there > > -mwindows did the trick. Running addtwo.exe resulted in a pop-up window > which asks me for a link (I have no idea what to do with it!). > > Many Many thanks. > > I will try to run some examples and then back to fortran. > > Cheers > > Ed > > > -----Original Message----- > From: Patrick Scheibe [mailto:pscheibe at trm.uni-leipzig.de] > Sent: Tuesday, July 27, 2010 7:58 PM > To: Eduardo M. A. M.Mendes > Cc: mathgroup at smc.vnet.net > Subject: RE: [mg111326] Problems compiling addrow with gcc-mingw (windows). > > 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 > > > > > > > > > > > >