[Rcpp-devel] Function does not compile on Mac OSX
Sacha Epskamp
sacha.epskamp at gmail.com
Mon May 16 16:15:05 CEST 2011
And the error he gets is:
Error in compileCode(f, code, language = language, verbose = verbose) :
Compilation ERROR, function(s)/method(s) not created! file786264e8.cpp: In
function ‘SEXPREC* file786264e8()’:
file786264e8.cpp:33: error: ISO C++ says that these are ambiguous, even
though the worst conversion for the first is better than the worst
conversion for the second:
/Library/Frameworks/R.framework/Versions/2.13/Resources/library/Rcpp/include/Rcpp/sugar/operators/plus.h:451:
note: candidate 1: Rcpp::sugar::Plus_Vector_Primitive<RTYPE, NA, T>
operator+(const Rcpp::VectorBase<RTYPE, NA, VECTOR>&, typename
Rcpp::traits::storage_type<RTYPE>::type) [with int RTYPE = 14, bool NA =
true, T = Rcpp::Vector<14>]
file786264e8.cpp:33: note: candidate 2: operator+(SEXPREC*, int) <built-in>
make: *** [file786264e8.o] Error 1
In addition: Warning message:
running command '/Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB
file786264e8.cpp 2> file786264e8.cpp.err.txt' had status 1
2011/5/16 Sacha Epskamp <sacha.epskamp at gmail.com>
> Hi,
>
> Here is a small example:
>
>
> library("Rcpp")
> library("inline")
>
> fun <-cxxfunction(,
> '
> Environment e = Environment::global_env();
> NumericVector bar = e["foo"];
> bar = bar + 1;
> return wrap(bar);
> ',plugin="Rcpp")
>
> foo <- 1:10
>
> fun()
>
> This function works fine on my windows netbook, but does not work on my
> supervisors mac. His computers specs are:
>
> ++++++++++
>
> platform i386-apple-darwin9.8.0
> arch i386
> os darwin9.8.0
> system i386, darwin9.8.0
> status
> major 2
> minor 13.0
> year 2011
> month 04
> day 13
> svn rev 55427
> language R
> version.string R version 2.13.0 (2011-04-13)
>
>
> ++++++++++++++
>
> packageDescription('Rcpp')
> Package: Rcpp
> Title: Seamless R and C++ Integration
> Version: 0.9.4
>
>
> +++++++++++++++
> > packageDescription('Inline')
> Package: inline
> Version: 0.3.8
> Date: 2010-12-07
> ++++++++++++++++
>
>
> > system("g++ --version")
>
> i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
>
> Best,
> Sacha
>
> 2011/5/16 Romain Francois <romain at r-enthusiasts.com>
>
>> Hello,
>>
>> Let's try to narrow this down.
>>
>> Please provide a small and reproducible example.
>>
>> What is the version of the compiler. This is what I have on my iMac:
>> $ g++ --version
>> i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
>> Copyright (C) 2007 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions. There is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>> PURPOSE.
>>
>> What version of Rcpp are you using. What version of R.
>>
>> Romain
>>
>> Le 16/05/11 12:06, Sacha Epskamp a écrit :
>>
>> Dear mailing list,
>>>
>>> For a project I am working on speeding up a simulation in R by
>>> translating it to C++ (using inline and Rcpp). It is done and works fine
>>> on my windows 7 64bit R, but for some reason it is not working on my
>>> supervisors latest mac OSX (not sure of the version. should be up to
>>> date).
>>>
>>> The strange thing is that it did work at first. It compiled and ran as
>>> expected. We then proceeded by changing a few things, resulting in the
>>> function not compiling anymore. When we then used exactly the same
>>> script as before it suddenly did not work anymore. I get these errors:
>>>
>>>
>>> Error in compileCode(f, code, language = language, verbose = verbose) :
>>> Compilation ERROR, function(s)/method(s) not created!
>>> file345af547.cpp: In function ‘SEXPREC* file345af547(SEXPREC*, SEXPREC*,
>>> SEXPREC*, SEXPREC*, SEXPREC*, SEXPREC*)’:
>>> file345af547.cpp:220: error: ISO C++ says that these are ambiguous, even
>>> though the worst conversion for the first is better than the worst
>>> conversion for the second:
>>>
>>> /Library/Frameworks/R.framework/Versions/2.13/Resources/library/Rcpp/include/Rcpp/sugar/operators/minus.h:421:
>>> note: candidate 1: Rcpp::sugar::Minus_Vector_Primitive<RTYPE, NA, T>
>>> operator-(const Rcpp::VectorBase<RTYPE, NA, VECTOR>&, typename
>>> Rcpp::traits::storage_type<RTYPE>::type) [with int RTYPE = 14, bool NA =
>>> true, T = Rcpp::Vector<14>]
>>> file345af547.cpp:220: note: candidate 2: operator-(SEXPREC*, int)
>>> <built-in>
>>> file345af547.cpp:646: error: ISO C++ says that these are ambiguous, even
>>> though the worst conversion for the first is better than the worst
>>> conversion for the second:
>>> /Library/Frameworks/R.framework/Versions/2.13/Resources/librar
>>> In addition: Warning message:
>>> running command '/Library/Frameworks/R.framework/Resources/bin/R CMD
>>> SHLIB file345af547.cpp 2> file345af547.cpp.err.txt' had status 1
>>>
>>> With relevant lines:
>>>
>>> 220 : Demoplayers = Demoplayers - 1;
>>>
>>> 646 : leeftijd = leeftijd + 1;
>>>
>>> Demoplayers and leeftijd are both NumericVectors. Does anyone know if
>>> there is a common bug on MacOSX that for some reason makes the inline
>>> compiler not work anymore? The cxxfunction example works fine though.
>>>
>>> Best,
>>> Sacha
>>>
>>
>> --
>> Romain Francois
>> Professional R Enthusiast
>> +33(0) 6 28 91 30 30
>> http://romainfrancois.blog.free.fr
>> http://romain-francois.com
>> |- http://bit.ly/hdKhCy : Rcpp article in JSS
>> |- http://bit.ly/elZJRJ : Montpellier Comedie Club - Avril 2011
>> `- http://bit.ly/fhqbRC : Rcpp workshop in Chicago on April 28th
>>
>>
>> _______________________________________________
>> Rcpp-devel mailing list
>> Rcpp-devel at lists.r-forge.r-project.org
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20110516/adda394f/attachment-0001.htm>
More information about the Rcpp-devel
mailing list