Dear all, I created a small example that reproduces my error below. It has to 
do with my use of module with  .constructor<const Rcpp::NumericVector &, int>() 
with Rcpp::NumericVector. I guess I’m not doing things the right way but since 
it is working on windows and used to work until now with my Mac … 

Thanks in advance for your help (below the simple test and the error obtained) 
Regards
Robin

#include <Rcpp.h>
using namespace Rcpp;

class MyModel
{
public:
  double a;
  ~MyModel();
  MyModel();
  MyModel(const Rcpp::NumericVector& ModelData, int temp);
};

RCPP_EXPOSED_CLASS(MyModel)
  
  MyModel::~MyModel() 
  {}
MyModel::MyModel() : a(0) 
{}
MyModel::MyModel(const Rcpp::NumericVector& ModelData, int temp) : a(0)
{}

RCPP_MODULE(MyModel){
  
  Rcpp::class_<MyModel>("MyModel")
  .constructor()
  .constructor<const Rcpp::NumericVector &, int>()
  ;
}


Compilation error : 

/usr/local/clang7/bin/clang++  -Wall 
-I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   
-I"/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include" 
-I"/Users/robin.girard/Documents/Code/Packages/test_modules/Test2/src" 
-I"/Users/robin.girard/Documents/Code/Packages/test_modules/Test2/src/../inst/include"
 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk 
-I/usr/local/include  -fPIC  -Wall -g -O2  -c test.cpp -o test.o
In file included from test.cpp:1:
In file included from 
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from 
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/RcppCommon.h:168:
In file included from 
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/as.h:25:
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/internal/Exporter.h:31:30:
 error: reference member 't' binds to a temporary object whose lifetime would 
be shorter than the lifetime of the constructed object
                    Exporter( SEXP x ) : t(x){}
                                           ^
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/as.h:87:41:
 note: in instantiation of member function 'Rcpp::traits::Exporter<const 
Rcpp::Vector<14, PreserveStorage> &>::Exporter' requested here
            ::Rcpp::traits::Exporter<T> exporter(x);
                                        ^
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/as.h:152:26:
 note: in instantiation of function template specialization 
'Rcpp::internal::as<const Rcpp::Vector<14, PreserveStorage> &>' requested here
        return internal::as<T>(x, typename 
traits::r_type_traits<T>::r_category());
                         ^
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/module/Module_generated_Constructor.h:58:13:
 note: in instantiation of function template specialization 'Rcpp::as<const 
Rcpp::Vector<14, PreserveStorage> &>' requested here
            as<U0>(args[0]),
            ^
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/module/Module_generated_class_constructor.h:91:29:
 note: in instantiation of member function 'Rcpp::Constructor_2<MyModel, const 
Rcpp::Vector<14, PreserveStorage> &, int>::get_new' requested here
        AddConstructor( new Constructor_2<Class,U0,U1> , valid, docstring ) ;
                            ^
test.cpp:26:4: note: in instantiation of function template specialization 
'Rcpp::class_<MyModel>::constructor<const Rcpp::Vector<14, PreserveStorage> &, 
int>' requested here
  .constructor<const Rcpp::NumericVector &, int>()
   ^
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/internal/Exporter.h:35:9:
 note: reference member declared here
                    T t ;
1 error generated.
make: *** [test.o] Error 1
Error in Rcpp::sourceCpp("src/test.cpp") : 
  Error 1 occurred building shared library.



> Le 3 mai 2019 à 08:41, Robin GIRARD <robin.gir...@mines-paristech.fr> a écrit 
> :
> 
> I found a way to solve my RcppArmadillo problem here 
> https://stackoverflow.com/questions/51761599/cannot-find-stdio-h 
> <https://stackoverflow.com/questions/51761599/cannot-find-stdio-h>
> I don’t really understand what happened because I had the file. 
> The other error is still here
> Regards
> Robin
> 
>> Le 3 mai 2019 à 08:32, Robin GIRARD <robin.gir...@mines-paristech.fr 
>> <mailto:robin.gir...@mines-paristech.fr>> a écrit :
>> 
>> Dear Simon, 
>> 
>> **regarding RcppArmadillo build from source pb**  the config.log is attached 
>> and points the following error while checking something about cross  
>> compilation.
>> In file included from conftest.cpp:9:
>> /usr/local/clang7/include/c++/v1/stdio.h:108:15: fatal error: 'stdio.h' file 
>> not found
>> #include_next <stdio.h>
>> 
>> But this file exists. 
>> 
>> ** regarding my compilation error** it is obtained while trying to build the 
>> module file, when calling #include "Rcpp.h » (line 4 of file Client.hpp) 
>> /usr/local/clang7/bin/clang++  -Wall 
>> -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -std=c++11 
>> -I../inst/include/ 
>> -I"/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include"
>>  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk 
>> -I/usr/local/include  -fPIC  -Wall -g -O2  -c mod_client.cc 
>> <http://mod_client.cc/> -o mod_client.o
>> 
>> In file included from mod_client.cc <http://mod_client.cc/>:1:
>> In file included from ../inst/include/Client.hpp:4:
>> In file included from 
>> /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp.h:27:
>> In file included from 
>> /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/RcppCommon.h:168:
>> In file included from 
>> /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/as.h:25:
>> /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/internal/Exporter.h:31:30:
>>  error: reference member 't' binds to a temporary object whose lifetime 
>> would be shorter than the lifetime of the constructed object
>>                     Exporter( SEXP x ) : t(x){}
>> 
>> Thanks in advance for your help
>> Regards
>> Robin
>> 
>> <config.log>
>> 
>>> Le 2 mai 2019 à 23:18, Simon Urbanek <simon.urba...@r-project.org 
>>> <mailto:simon.urba...@r-project.org>> a écrit :
>>> 
>>> Robin,
>>> 
>>> this is unlikely a Mac issue, merely newer compilers give you better error 
>>> handling pointing to issues in the code that may not have been detected 
>>> before. If you post the code we can have a look.
>>> 
>>> Also check your tools - the RcppArmadillo error points out that your 
>>> compiler setup is broken since it cannot create runnable executable. Check 
>>> config.log for details.
>>> 
>>> Cheers,
>>> Simon
>>> 
>>> 
>>> 
>>>> On May 2, 2019, at 1:04 PM, Robin GIRARD <robin.gir...@mines-paristech.fr 
>>>> <mailto:robin.gir...@mines-paristech.fr>> wrote:
>>>> 
>>>> Dear all, avec a Mac update today I obtained the following error while 
>>>> compiling a package of mine using Rcpp : 
>>>> /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/internal/Exporter.h:31:30:
>>>>  error: reference member 't' binds to a temporary object whose lifetime 
>>>> would be shorter than the lifetime of the constructed object
>>>>                    Exporter( SEXP x ) : t(x){}
>>>> 
>>>> I’m pretty sure this has something to do with Mac, I updated the Command 
>>>> line tool, I manage to compile simple examples with sourceRcpp (trying to 
>>>> follow instructions here 
>>>> http://thecoatlessprofessor.com/programming/r-compiler-tools-for-rcpp-on-macos/
>>>>  
>>>> <http://thecoatlessprofessor.com/programming/r-compiler-tools-for-rcpp-on-macos/>)
>>>>  I’m still trying to reproduce my error on a simple example. 
>>>> I have R 3.6 and clang7 installed. 
>>>> 
>>>> Another strange point (might be connected) is that when I try to install 
>>>> RcppArmadillo from source (as suggested in link above with 
>>>> install.packages("", type = "source »)) it gives something about cross 
>>>> compiling:
>>>> 
>>>> checking whether the C++ compiler works... yes
>>>> checking for C++ compiler default output file name... a.out
>>>> checking for suffix of executables... 
>>>> checking whether we are cross compiling... configure: error: in 
>>>> `/private/var/folders/zt/7cz1y9md79l_h08bbqymt4w9z8xlw7/T/Rtmpgi7WQZ/R.INSTALL4f4110aa3f/RcppArmadillo':
>>>> configure: error: cannot run C++ compiled programs.
>>>> If you meant to cross compile, use `--host'.
>>>> See `config.log' for more details
>>>> ERROR: configuration failed for package ‘RcppArmadillo’
>>>> 
>>>> 
>>>> Thanks in advance for your help
>>>> Regards
>>>> Robin
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Rcpp-devel mailing list
>>>> Rcpp-devel@lists.r-forge.r-project.org 
>>>> <mailto:Rcpp-devel@lists.r-forge.r-project.org>
>>>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel 
>>>> <https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel>
>>> 
>> 
> 
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel@lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to