Недавно я перешел на Mac OS Sonoma 14.5 и теперь пытаюсь использовать свой предыдущий сценарий R на основе Rcpp (использование C++ в R).
У меня были серьезные трудности с пониманием того, как связать правильные компиляторы. Я видел, что у многих людей такие же проблемы.
Я выполнил рекомендации в разделе Настройка компиляторов на Apple Silicon (M1, M2, M3, ...) для Rcpp и других инструментов, и это действительно уменьшило количество ошибок. Однако теперь я получаю немного другой тип ошибки:
using C++ compiler: ‘Apple clang version 15.0.0 (clang-1500.3.9.4)’
using SDK: ‘’
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/Rcpp/include" -I"/Users/testUser/Cpp_code" -I/opt/R/arm64/include -Xclang -fopenmp -fPIC -I/usr/local/opt/llvm/include -c test_function.cpp -o test_function.o
In file included from test_function.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/Rcpp/include/RcppCommon.h:30:
In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/Rcpp/include/Rcpp/r/headers.h:66:
/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/Rcpp/include/Rcpp/platform/compiler.h:100:10: fatal error: 'cmath' file not found
#include <cmath>
^~~~~~~
1 error generated.
Я полагаю, что одна из проблем заключается в том, что у меня нет заголовка SDK?
Это мой ~/.R/Makevars
:
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
CXX1X=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
LDFLAGS=-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib
CXXFLAGS=-I/usr/local/opt/llvm/include
FLIBS=-L/usr/local/Cellar/gcc/14.1.0_2/lib/gcc/14
CPPFLAGS += -Xclang -fopenmp
LDFLAGS += -lomp
См. ответ на MacOS здесь. Дубликат?
Почему ты снова задаешь тот же вопрос?
дорогая @AdaLovelace, я задаю не тот же вопрос. Кроме того, я удалил предыдущий вопрос. Я открыт для конструктивных комментариев.
@user4581301 user4581301, спасибо за комментарий и внимание к проблеме. Я следовал инструкциям в сообщении, которое я добавил в этот вопрос, и это уменьшило количество ошибок. По сути, мне пришлось переустановить Xcode.
@DrewDormann Я переустановил gcc, используя последнюю версию. Я тоже думал, что опубликованная вами тема решит проблему. Вот почему в моих Makevars есть /usr/local/Cellar/gcc/14.1.0_2/lib/gcc/14. Однако я не уверен, достаточно ли этого для того, чтобы R получил правильный компилятор gcc.
Я решил свою проблему, просто удалив файл ~/.R/Makevars
.
Если вы не возражаете, я спрошу, каково было решение вчерашней проблемы? Используете другой компилятор?