0

I have made the 'mistake' to update few things in my MacOS Monterey Intel-based and now I cannot source any cpp file as I used to do with Rcpp.

I tried to understand how others have resolved similar issues, but my problem seem to still remain.

Below you can find the error message, which perhaps may help to point me out to the possible solution:

In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:30:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp/r/headers.h:62:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp/platform/compiler.h:100:
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:642:26: error: no template named 'numeric_limits'
    bool _FloatBigger = (numeric_limits<_FloatT>::digits > numeric_limits<_IntT>::digits),
                         ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:642:60: error: no template named 'numeric_limits'
    bool _FloatBigger = (numeric_limits<_FloatT>::digits > numeric_limits<_IntT>::digits),
                                                           ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:643:18: error: no template named 'numeric_limits'
    int _Bits = (numeric_limits<_IntT>::digits - numeric_limits<_FloatT>::digits)>
                 ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:643:50: error: no template named 'numeric_limits'
    int _Bits = (numeric_limits<_IntT>::digits - numeric_limits<_FloatT>::digits)>
                                                 ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:648:17: error: no template named 'numeric_limits'
  static_assert(numeric_limits<_FloatT>::radix == 2, "FloatT has incorrect radix");
                ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:651:25: error: no template named 'numeric_limits'
  return _FloatBigger ? numeric_limits<_IntT>::max() :  (numeric_limits<_IntT>::max() >> _Bits << _Bits);
                        ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:651:58: error: no template named 'numeric_limits'
  return _FloatBigger ? numeric_limits<_IntT>::max() :  (numeric_limits<_IntT>::max() >> _Bits << _Bits);
                                                         ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:661:16: error: no template named 'numeric_limits'
  using _Lim = numeric_limits<_IntT>;
               ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:664:12: error: use of undeclared identifier '_Lim'
    return _Lim::max();
          ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:665:21: error: use of undeclared identifier '_Lim'
  } else if (__r <= _Lim::lowest()) {
                    ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:666:12: error: use of undeclared identifier '_Lim'
    return _Lim::min();
           ^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:30:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp/r/headers.h:62:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp/platform/compiler.h:153:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/unordered_map:437:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__hash_table:16:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/algorithm:653:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/functional:490:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__algorithm/search.h:15:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__iterator/iterator_traits.h:14:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__iterator/incrementable_traits.h:14:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/concepts:134:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__functional_base:22:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/exception:83:
/usr/local/opt/llvm/bin/../include/c++/v1/cstdlib:138:9: error: target of using declaration conflicts with declaration already in scope
using ::abs _LIBCPP_USING_IF_EXISTS;
        ^
/usr/local/include/stdlib.h:132:6: note: target of using declaration
int      abs(int) __pure2;
         ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: conflicting declaration
using ::abs _LIBCPP_USING_IF_EXISTS;
^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:65:
/usr/local/opt/llvm/bin/../include/c++/v1/complex:853:1: error: declaration conflicts with target of using declaration already in scope
abs(const complex<_Tp>& __c)
^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: target of using declaration
using ::abs _LIBCPP_USING_IF_EXISTS;
^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:9: note: using declaration
using ::abs _LIBCPP_USING_IF_EXISTS;
        ^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:65:
/usr/local/opt/llvm/bin/../include/c++/v1/complex:910:16: error: reference to unresolved using declaration
        return abs(__c.real());
               ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: using declaration annotated with 'using_if_exists' here
using ::abs _LIBCPP_USING_IF_EXISTS;
^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:65:
/usr/local/opt/llvm/bin/../include/c++/v1/complex:912:16: error: reference to unresolved using declaration
        return abs(__c.imag());
               ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: using declaration annotated with 'using_if_exists' here
using ::abs _LIBCPP_USING_IF_EXISTS;
^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:65:
/usr/local/opt/llvm/bin/../include/c++/v1/complex:969:16: error: reference to unresolved using declaration
        __re = abs(__re);
               ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: using declaration annotated with 'using_if_exists' here
using ::abs _LIBCPP_USING_IF_EXISTS;
^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:65:
/usr/local/opt/llvm/bin/../include/c++/v1/complex:1022:29: error: reference to unresolved using declaration
    return complex<_Tp>(log(abs(__x)), arg(__x));
                            ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: using declaration annotated with 'using_if_exists' here
using ::abs _LIBCPP_USING_IF_EXISTS;
^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:65:
/usr/local/opt/llvm/bin/../include/c++/v1/complex:1049:23: error: reference to unresolved using declaration
    return polar(sqrt(abs(__x)), arg(__x) / _Tp(2));
                      ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: using declaration annotated with 'using_if_exists' here
using ::abs _LIBCPP_USING_IF_EXISTS;
^
In file included from file1851d7b0603f9.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include/RcppCommon.h:65:
/usr/local/opt/llvm/bin/../include/c++/v1/complex:1174:33: error: reference to unresolved using declaration
            return complex<_Tp>(abs(__x.real()), __x.imag());
                                ^
/usr/local/opt/llvm/bin/../include/c++/v1/cmath:338:1: note: using declaration annotated with 'using_if_exists' here
using ::abs _LIBCPP_USING_IF_EXISTS;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [file1851d7b0603f9.o] Error 1
/usr/local/opt/llvm/bin/clang++ -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I"/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include" -I"/private/var/folders/pq/hxwd9my563q_qpy4rbrlgkmw0000gn/T/RtmpYPQ7or/sourceCpp-x86_64-apple-darwin17.0-1.0.8.3" -I/usr/local/include   -fPIC  -I/usr/local/opt/llvm/include -c file1851d7b0603f9.cpp -o file1851d7b0603f9.o
Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir = cacheDir,  : 
  Error 1 occurred building shared library.
CafféSospeso
  • 1,101
  • 3
  • 11
  • 28
  • Uninstall llvm from /usr/local/opt/llvm - it looks like something very old llvm. – 273K Jun 15 '22 at 01:27
  • mm..I tried to uninstall and reinstall llvm, but I still get the error. I just saw that a couple of years ago someone had similar issues: https://stackoverflow.com/questions/63865695/rcpp-fails-to-compile-c-code-after-series-of-updates. I followed those instructions but still, the problem remain. Is there a way to reset everything. It is being quite annoying this issue. – CafféSospeso Jun 15 '22 at 18:26
  • This is the compilation command that is run by Rstudio when I use `evalCpp('1 + 1')`: `clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include" -I"/private/var/folders/pq/hxwd9my563q_qpy4rbrlgkmw0000gn/T/RtmpBOqbbh/sourceCpp-x86_64-apple-darwin17.0-1.0.8.3" -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk -I/usr/local/include -fPIC -Wall -g -O2 -c file2dd85b3a6b86.cpp -o file2dd85b3a6b86.o` – CafféSospeso Jun 15 '22 at 18:33
  • You do not need to install llvm. You get all with Xcode – 273K Jun 15 '22 at 19:09
  • OK, but then do you think that it should be enough to remove and re-install Xcode? – CafféSospeso Jun 15 '22 at 19:15
  • No, it will not be enough. `sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer` should be the next step after installing Xcode. – 273K Jun 15 '22 at 19:19
  • I tried your suggestion but still nothing. I identified also this thread with a similar issue: `https://github.com/RcppCore/Rcpp/issues/1160`, but it did not solve my problem. – CafféSospeso Jun 16 '22 at 00:54
  • 1
    How can it be nothing? /usr/local/opt/llvm/bin/../include/c++/v1/ must go away at least. Your macOS seem to have too much junks. Too much efforts when `brew install --cask rstudio` will do all work. I think you should factory reset your macOS and start from scratch. – 273K Jun 16 '22 at 04:17
  • Ok, like uninstall Rstudio and re-install it with `brew install --cask rstudio`, right? – CafféSospeso Jun 16 '22 at 17:13
  • Uninstalling Rstudio and re-installing it with `brew install --cask rstudio` solved my problems. – CafféSospeso Jun 16 '22 at 22:03

0 Answers0