<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>I was including Rinternals.h before Rccp.h</div><div>As Rccp.h includes Rinternals.h, I don't need this inclusion and that fix the compilation error.</div><div><br></div><div>Thanks guys,</div><div><br></div><div>Rémi&nbsp;</div><div><br></div><div><div><div>Le 7 déc. 2011 à 17:45, Dirk Eddelbuettel a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>On 7 December 2011 at 16:55, Rémi Lebret wrote:<br>| Hi,<br>| <br>| I got this error when I'm trying to compile my package using Rcpp :<br>| <br>| g++-4.2 -arch i386 -I/Library/Frameworks/R.framework/Resources/include -I/<br>| Library/Frameworks/R.framework/Resources/include/i386 &nbsp;-I/usr/local/include -I"<br>| /Library/Frameworks/R.framework/Versions/2.14/Resources/library/Rcpp/include" &nbsp;<br>| -fPIC &nbsp;-g -O2 -c clusteringMain.cpp -o clusteringMain.o<br>| In file included from /usr/include/c++/4.2.1/tr1/unordered_map:38,<br>| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from /Library/Frameworks/R.framework/Versions/2.14/Resources/<br>| library/Rcpp/include/RcppCommon.h:130,<br>| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from /Library/Frameworks/R.framework/Versions/2.14/Resources/<br>| library/Rcpp/include/Rcpp.h:27,<br>| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from clusteringMain.cpp:91:<br>| /usr/include/c++/4.2.1/tr1/functional_hash.h: In member function ‘size_t<br>| std::tr1::hash&lt;std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator<br>| &lt;char&gt; &gt; &gt;::operator()(const std::string&amp;) const’:<br>| /usr/include/c++/4.2.1/tr1/functional_hash.h:144: error: ‘const struct<br>| std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;’ has<br>| no member named ‘Rf_length’<br>| /usr/include/c++/4.2.1/tr1/functional_hash.h: In member function ‘size_t<br>| std::tr1::hash&lt;std::basic_string&lt;wchar_t, std::char_traits&lt;wchar_t&gt;,<br>| std::allocator&lt;wchar_t&gt; &gt; &gt;::operator()(const std::wstring&amp;) const’:<br>| /usr/include/c++/4.2.1/tr1/functional_hash.h:156: error: ‘const struct<br>| std::basic_string&lt;wchar_t, std::char_traits&lt;wchar_t&gt;, std::allocator&lt;wchar_t&gt; &gt;<br>| ’ has no member named ‘Rf_length’<br>| make: *** [clusteringMain.o] Error 1<br>| <br>| It looks like there is a problem with the tr1::unordered_map<br>| <br>| Any help ?<br><br>’ has no member named ‘Rf_length’ can happen when you get the header file<br>includes misordered or otherwise messed up. &nbsp;Someone calls 'length()' which<br>should fall back to Rf_length but doesn't as it may have gotten redefined.<br><br>It's finicky due to R being C code using copious amounts of macros which can<br>break. &nbsp;Follow our package guidelines and stanzas and should be fine.<br><br>And, as Romain said, reduce it to a smaller problem. It is unlikely that<br>there is a problem with tr1::unordered_map per se.<br><br>Dirk<br><br>| <br>| Rémi<br>| <br>| Rémi Lebret<br>| Ingénieur de recherche CNRS<br>| Laboratoire de mathématiques de Lille1 - UMR 8524<br>| Batiment M3 - Bureau 322<br>| Tel: 03 20 43 67 82<br>| <a href="mailto:remi.lebret@math.univ-lille1.fr">remi.lebret@math.univ-lille1.fr</a><br>| <br>| <br>| ----------------------------------------------------------------------<br>| _______________________________________________<br>| Rcpp-devel mailing list<br>| <a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-project.org</a><br>| <a href="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</a><br>-- <br>"Outside of a dog, a book is a man's best friend. Inside of a dog, it is too<br>dark to read." -- Groucho Marx<br></div></blockquote></div><br><div>
<font face="Courier New" size="3">
Rémi Lebret<br>
Ingénieur de recherche CNRS<br>
Laboratoire de mathématiques de Lille1 - UMR 8524<br>
Batiment M3 - Bureau 322<br>
Tel: 03 20 43 67 82<br>
<a href="mailto:remi.lebret@math.univ-lille1.fr">remi.lebret@math.univ-lille1.fr</a><br>
</font>


</div>
<br></div></body></html>