RCPP używany do pracy na r, ale już nie, i nie wiem dlaczego.

library(Rcpp)
evalCpp("1+1")

Długa lista błędów jest zwrócony, zaczynając od

Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir = cacheDir,  : 
  Error 1 occurred building shared library.

Kontynuowanie

/usr/local/clang7/include/c++/v1/cmath:313:9: error: no member named 'signbit' in the global namespace
using ::signbit;
      ~~^
/usr/local/clang7/include/c++/v1/cmath:314:9: error: no member named 'fpclassify' in the global namespace
using ::fpclassify;
      ~~^
/usr/local/clang7/include/c++/v1/cmath:315:9: error: no member named 'isfinite' in the global namespace; did you mean 'finite'?
using ::isfinite;
      ~~^
/usr/local/include/math.h:749:12: note: 'finite' declared here
extern int finite(double)
           ^

I kończąc na

20 errors generated.
make: *** [file35f5fb135d1.o] Error 1

Wielokrotnie zainstalowałem narzędzia wiersza poleceń i XCode. Próbowałem również rozwiązanie "Coatless Profesor" o https://thecoatlessprofessor.com/programming/cpp/r-compiler-tools-for-rcpp-on-macos-before-r-4.0.0/ (jak również innych rozwiązań wielu), ale bezskutecznie.

Nie niechętnie ulepszam do R 4.0, ponieważ kluczowy element oprogramowania przestanie działać w nowszym środowisku R.

sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Catalina 10.15.7

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RcppArmadillo_0.10.1.0.0 Rcpp_1.0.5              

loaded via a namespace (and not attached):
[1] compiler_3.6.3 tools_3.6.3   

Byłbym najbardziej wdzięczny za każdą radę!

0
Bob 28 październik 2020, 05:57

1 odpowiedź

Najlepsza odpowiedź

Znalazłem odpowiedź na to pytanie w postie przez Christian Herz, tutaj: https://discourse.slicer.org/t/macos-catalina-10-15-5-compilation-error/12807/8

Pliki nagłówka na moim MAC były nieuporządkowane, z symbolem Symuled Duplikaty prawidłowych plików nagłówka w {X0}} nieprawidłowo umieszczonych w /usr/local/include. Ten błąd wystąpił w wyniku mojego próby (bezskutecznie), aby skompilować program C w Catalinie za pomocą rozwiązania sugerowanego przez @Roy tutaj: https://stackoverflow.com/questions/58278260/cant-compile-a-c-program-on-a-mac-after-upgrading-to-catalina-10-15. Rozwiązanie nie pomogło skompilować program C i prowadzić do trudności z RCPP.

Aby wyleczyć tę dolegliwość, poszedłem za strategią @Christoffer Hammarström opisany https://unix.stackexchange.com/questions/39333/how-can-i-remove-all-symbolic-links-with-a-special-target/39341#39341 i usunięto wszystkie symetowane nagłówki w /usr/local/include, które wskazywały na /Library/Developer/CommandLineTools.

Dokładne polecenie brzmiał: find /usr/local/include -lname '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/*' -delete A teraz RCPP poprawnie kompiluje.

0
Bob 1 listopad 2020, 20:40