From: Eduardo M. A. M.Mendes on
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(a)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


From: Patrick Scheibe on
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(a)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
>
>


From: Patrick Scheibe on
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(a)trm.uni-leipzig.de]
> Sent: Tuesday, July 27, 2010 10:17 AM
> To: Eduardo M. A. M.Mendes
> Cc: mathgroup(a)smc.vnet.net
> Subject: Re: 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(a)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
> >
> >
>
>


From: Eduardo M. A. M.Mendes on
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(a)trm.uni-leipzig.de]
Sent: Tuesday, July 27, 2010 7:58 PM
To: Eduardo M. A. M.Mendes
Cc: mathgroup(a)smc.vnet.net
Subject: RE: 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(a)trm.uni-leipzig.de]
> Sent: Tuesday, July 27, 2010 10:17 AM
> To: Eduardo M. A. M.Mendes
> Cc: mathgroup(a)smc.vnet.net
> Subject: Re: 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(a)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
> >
> >
>
>



From: Eduardo M. A. M.Mendes on
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(a)trm.uni-leipzig.de]
Sent: Tuesday, July 27, 2010 10:17 AM
To: Eduardo M. A. M.Mendes
Cc: mathgroup(a)smc.vnet.net
Subject: Re: 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(a)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
>
>