Ошибка поиска C++ с помощью Rcpp в Mac OS Sonoma 14.5: файл cmath с фатальной ошибкой не найден

Недавно я перешел на 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

Если вы не возражаете, я спрошу, каково было решение вчерашней проблемы? Используете другой компилятор?

user4581301 02.08.2024 21:42

См. ответ на MacOS здесь. Дубликат?

Drew Dormann 02.08.2024 21:50

Почему ты снова задаешь тот же вопрос?

Ada Lovelace 02.08.2024 22:07

дорогая @AdaLovelace, я задаю не тот же вопрос. Кроме того, я удалил предыдущий вопрос. Я открыт для конструктивных комментариев.

CafféSospeso 02.08.2024 22:23

@user4581301 user4581301, спасибо за комментарий и внимание к проблеме. Я следовал инструкциям в сообщении, которое я добавил в этот вопрос, и это уменьшило количество ошибок. По сути, мне пришлось переустановить Xcode.

CafféSospeso 02.08.2024 22:25

@DrewDormann Я переустановил gcc, используя последнюю версию. Я тоже думал, что опубликованная вами тема решит проблему. Вот почему в моих Makevars есть /usr/local/Cellar/gcc/14.1.0_2/lib/gcc/14. Однако я не уверен, достаточно ли этого для того, чтобы R получил правильный компилятор gcc.

CafféSospeso 02.08.2024 22:27
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
6
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил свою проблему, просто удалив файл ~/.R/Makevars.

Другие вопросы по теме