[Rcpp-devel] Function does not compile on Mac OSX

Romain Francois romain at r-enthusiasts.com
Mon May 16 13:53:53 CEST 2011


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




More information about the Rcpp-devel mailing list