[Rd] The standalone Rmath library and VC++ 2003

2008-01-30 Thread Oran Johnson
Linking my VC++ application with the standalone Rmath library yields the
following;

 

-- Build started: Project: Complex plugin, Configuration: Debug
Win32 --

 

Linking...

   Creating library .\../Debug/complex_plugin.lib and object
.\../Debug/complex_plugin.exp

libRmath.a(mlutils.o) : warning LNK4217: locally defined symbol __iob
imported in function _REprintf

libRmath.a(dbeta.o) : error LNK2019: unresolved external symbol _log1p
referenced in function _dbeta

libRmath.a(qbeta.o) : error LNK2019: unresolved external symbol _log1p
referenced in function _qbeta

libRmath.a(lbeta.o) : error LNK2019: unresolved external symbol _log1p
referenced in function _lbeta

libRmath.a(toms708.o) : error LNK2001: unresolved external symbol _log1p

libRmath.a(qbeta.o) : error LNK2019: unresolved external symbol _expm1
referenced in function _qbeta

libRmath.a(mlutils.o) : error LNK2019: unresolved external symbol
___fpclassify referenced in function _R_pow

../Debug/complex_plugin.dll : fatal error LNK1120: 3 unresolved
externals

 

Build log was saved at "file://c:\starting point\Debug\BuildLog.htm"

Complex plugin - 7 error(s), 1 warning(s)

 

 

-- Done --

 

Build: 0 succeeded, 1 failed, 0 skipped

 

At first glance, it looks like C:\Rtools\MinGW\lib\libm.a is missing.
After adding it to my project properties, the results are the same. It
looks like VC++ is OK with GNU libraries because it appears to accept
libRmath which was built on the same machine using Rtools. Also it does
not appear to be a configuration issue, because it's only found
'C:\Rtools\MinGW\lib' and VC+ is complaining about not finding it.

 

Any ideas?

 

Oran

 


[[alternative HTML version deleted]]

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] The standalone Rmath library and VC++ 2003

2008-01-31 Thread Oran Johnson
Yes, I used Rtools to compile the standalone Rmath library. However,
C:\Rtools\MinGW\lib\libm.a does not contain log1p;
C:\Rtools\MinGW\lib\libmingwex.a does. Once I replaced libm.a with
libmingwex.a, the application linked successfully and the following test
program was successful:

#include 
#define MATHLIB_STANDALONE
#include 

int main()
{
double d = dbeta(0.5, 2.0, 3.0, 1); 
double q = qbeta(0.5, 2.0, 3.0, 1, 0); 
double p = pbeta(0.5, 2.0, 3.0, 1, 0); 
double r = rbeta(0.5, 2.0);

std::cout << "dbeta = " << d << "\n";
std::cout << "qbeta = " << q << "\n"; 
std::cout << "pbeta = " << p << "\n";
std::cout << "rbeta = " << r << "\n"; 
}


dbeta = 0.405465
qbeta = 0.385728
pbeta = 0.6875
rbeta = 0.422286
Press any key to continue

Thanks
Oran

-Original Message-
From: Prof Brian Ripley [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, January 30, 2008 1:06 PM
To: Oran Johnson
Cc: r-devel@r-project.org
Subject: Re: [Rd] The standalone Rmath library and VC++ 2003

On Tue, 29 Jan 2008, Oran Johnson wrote:

> Linking my VC++ application with the standalone Rmath library yields
the
> following;

Looks like you compiled the standalone Rmath library with MinGW.  You 
can't expect to mix-and-match compilers and link together a static
library 
built under another compiler.

It is possible that this will work if you try linking to Rmath.dll: 
WIndows' DLLs are fairly portable (although parameter passing
conventions 
do differ, and we know 'double complex' is not portable).  I assume you 
know how to make a VC++ import library from a DLL, which you would need
to 
do.

If you compiled standalone Rmath under VC++, you would not have got a .a

but a lib, at least by default.  You are welcome to try that: it has
been 
done in the past but is not something we support (nor even would want to

answer questions about).


> -- Build started: Project: Complex plugin, Configuration: Debug
> Win32 --
>
>
>
> Linking...
>
>   Creating library .\../Debug/complex_plugin.lib and object
> .\../Debug/complex_plugin.exp
>
> libRmath.a(mlutils.o) : warning LNK4217: locally defined symbol __iob
> imported in function _REprintf
>
> libRmath.a(dbeta.o) : error LNK2019: unresolved external symbol _log1p
> referenced in function _dbeta
>
> libRmath.a(qbeta.o) : error LNK2019: unresolved external symbol _log1p
> referenced in function _qbeta
>
> libRmath.a(lbeta.o) : error LNK2019: unresolved external symbol _log1p
> referenced in function _lbeta
>
> libRmath.a(toms708.o) : error LNK2001: unresolved external symbol
_log1p
>
> libRmath.a(qbeta.o) : error LNK2019: unresolved external symbol _expm1
> referenced in function _qbeta
>
> libRmath.a(mlutils.o) : error LNK2019: unresolved external symbol
> ___fpclassify referenced in function _R_pow
>
> ../Debug/complex_plugin.dll : fatal error LNK1120: 3 unresolved
> externals
>
>
>
> Build log was saved at "file://c:\starting point\Debug\BuildLog.htm"
>
> Complex plugin - 7 error(s), 1 warning(s)
>
>
>
>
>
> -- Done --
>
>
>
>Build: 0 succeeded, 1 failed, 0 skipped
>
>
>
> At first glance, it looks like C:\Rtools\MinGW\lib\libm.a is missing.
> After adding it to my project properties, the results are the same. It
> looks like VC++ is OK with GNU libraries because it appears to accept
> libRmath which was built on the same machine using Rtools. Also it
does
> not appear to be a configuration issue, because it's only found
> 'C:\Rtools\MinGW\lib' and VC+ is complaining about not finding it.
>
>
>
> Any ideas?
>
>
>
> Oran
>
>
>
>
>   [[alternative HTML version deleted]]
>
> __
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian D. Ripley,  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel:  +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UKFax:  +44 1865 272595

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] The standalone Rmath library and VC++ 2003

2008-02-07 Thread Oran Johnson
Where is "doublernbeta(double, double, double);" ?

It's in Rmath.h, but in the source or supporting libs.

Oran

-Original Message-
From: Prof Brian Ripley [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, January 30, 2008 1:36 PM
To: Oran Johnson
Cc: r-devel@r-project.org
Subject: RE: [Rd] The standalone Rmath library and VC++ 2003

On Wed, 30 Jan 2008, Oran Johnson wrote:

> Yes, I used Rtools to compile the standalone Rmath library. However,
> C:\Rtools\MinGW\lib\libm.a does not contain log1p;
> C:\Rtools\MinGW\lib\libmingwex.a does. Once I replaced libm.a with
> libmingwex.a, the application linked successfully and the following
test
> program was successful:

MinGW's loader will pick up the correct set of default libraries, which 
does include -lmingwex and much else, so if you build a DLL, these entry

points are compiled in already.

Otherwise, it is down to you to figure out how to link, and it may
change 
from time to time. Just the same experience as when you mix-and-match 
compilers on a Unix-alike (try mixing gcc3 and gcc4, or gcc and Sun 
Studio).


>
> #include 
> #define MATHLIB_STANDALONE
> #include 
>
> int main()
> {
>   double d = dbeta(0.5, 2.0, 3.0, 1);
>   double q = qbeta(0.5, 2.0, 3.0, 1, 0);
>   double p = pbeta(0.5, 2.0, 3.0, 1, 0);
>   double r = rbeta(0.5, 2.0);
>
>   std::cout << "dbeta = " << d << "\n";
>   std::cout << "qbeta = " << q << "\n";
>   std::cout << "pbeta = " << p << "\n";
>   std::cout << "rbeta = " << r << "\n";
> }
>
>
> dbeta = 0.405465
> qbeta = 0.385728
> pbeta = 0.6875
> rbeta = 0.422286
> Press any key to continue
>
> Thanks
> Oran
>
> -Original Message-
> From: Prof Brian Ripley [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, January 30, 2008 1:06 PM
> To: Oran Johnson
> Cc: r-devel@r-project.org
> Subject: Re: [Rd] The standalone Rmath library and VC++ 2003
>
> On Tue, 29 Jan 2008, Oran Johnson wrote:
>
>> Linking my VC++ application with the standalone Rmath library yields
> the
>> following;
>
> Looks like you compiled the standalone Rmath library with MinGW.  You
> can't expect to mix-and-match compilers and link together a static
> library
> built under another compiler.
>
> It is possible that this will work if you try linking to Rmath.dll:
> WIndows' DLLs are fairly portable (although parameter passing
> conventions
> do differ, and we know 'double complex' is not portable).  I assume
you
> know how to make a VC++ import library from a DLL, which you would
need
> to
> do.
>
> If you compiled standalone Rmath under VC++, you would not have got a
.a
>
> but a lib, at least by default.  You are welcome to try that: it has
> been
> done in the past but is not something we support (nor even would want
to
>
> answer questions about).
>
>
>> -- Build started: Project: Complex plugin, Configuration: Debug
>> Win32 --
>>
>>
>>
>> Linking...
>>
>>   Creating library .\../Debug/complex_plugin.lib and object
>> .\../Debug/complex_plugin.exp
>>
>> libRmath.a(mlutils.o) : warning LNK4217: locally defined symbol __iob
>> imported in function _REprintf
>>
>> libRmath.a(dbeta.o) : error LNK2019: unresolved external symbol
_log1p
>> referenced in function _dbeta
>>
>> libRmath.a(qbeta.o) : error LNK2019: unresolved external symbol
_log1p
>> referenced in function _qbeta
>>
>> libRmath.a(lbeta.o) : error LNK2019: unresolved external symbol
_log1p
>> referenced in function _lbeta
>>
>> libRmath.a(toms708.o) : error LNK2001: unresolved external symbol
> _log1p
>>
>> libRmath.a(qbeta.o) : error LNK2019: unresolved external symbol
_expm1
>> referenced in function _qbeta
>>
>> libRmath.a(mlutils.o) : error LNK2019: unresolved external symbol
>> ___fpclassify referenced in function _R_pow
>>
>> ../Debug/complex_plugin.dll : fatal error LNK1120: 3 unresolved
>> externals
>>
>>
>>
>> Build log was saved at "file://c:\starting point\Debug\BuildLog.htm"
>>
>> Complex plugin - 7 error(s), 1 warning(s)
>>
>>
>>
>>
>>
>> -- Done --
>>
>>
>>
>>Build: 0 succeeded, 1 failed, 0 skipped
>>
>>
>>
>> At first glance, it looks like C:\Rtools\MinGW\lib\libm.a is missing.
>> After adding it to my project properties, the results are the same.
It
>> lo