'cmath' file not found when running brms models

Short summary of the problem

I encountered an error message while running the model with the following codes.

m2 <- brm(response_rating~ cond + (1 + cond|item_id) + (1 + cond|participant), data = df_analysis1, family = cumulative(link="logit", threshold="flexible"), init = 0, chains = 4, iter = 4000)

Here is the error message:

Compiling Stan program...
Trying to compile a simple C file
Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
using C compiler: ‘Apple clang version 16.0.0 (clang-1600.0.26.4)’
using SDK: ‘’
clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/Rcpp/include/"  -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/"  -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/unsupported"  -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/src/"  -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/"  -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppParallel/include/"  -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/rstan/include" -DEIGEN_NO_DEBUG  -DBOOST_DISABLE_ASSERTS  -DBOOST_PENDING_INTEGER_LOG2_HPP  -DSTAN_THREADS  -DUSE_STANC3 -DSTRICT_R_HEADERS  -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION  -D_HAS_AUTO_PTR_ETC=0  -include '/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/stan/math/prim/fun/Eigen.hpp'  -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1   -I/opt/R/arm64/include    -fPIC  -falign-functions=64 -Wall -g -O2  -c foo.c -o foo.o
In file included from <built-in>:1:
In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/stan/math/prim/fun/Eigen.hpp:22:
In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/Eigen/Dense:1:
In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/Eigen/Core:19:
/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:679:10: fatal error: 'cmath' file not found
  679 | #include <cmath>
      |          ^~~~~~~
1 error generated.
make: *** [foo.o] Error 1

But after this message, the model seems to continue running with good results. I was wondering how to get rid of this ‘cmath’ file not found error.

  • Operating System: macOS Sequoia 15.1
  • brms Version: 2.22.0
  • R version 4.4.2
  • Platform: aarch64-apple-darwin20

Thank you very much for the help!

This sounds similar to RcppEigen, cmath, and rstan installation issues - #3 by turtlegraphics

If so, the issue is likely that your version of XCode is out of sync with your operating system version

1 Like

Thank you @WardBrian for the suggestion. I’ve solved the issue by installing the latest XCode with the latest OS system (Sequoia). Now brms can successfully compile and model my data!

3 Likes

I hit this issue, too. After installing the latest XCode with Sequoia, I’m still seeing the issue. I restarted R, and Mac OS, but the error remains.

@claire, was there anything else you had to do to get it to work?

I run into the same situation @statwonk did you find a solution in the end?

Is this issue specific to the rstan backend, or does it also happen when you set brm(..., backend = "cmdstanr")?

We’re finding that sometimes people’s versions of Xcode don’t match their OS version, and Apple doesn’t seem to care but it can affect Stan compilation. For example:

Depending on the situation it could be that the Xcode version is greater or smaller than the OS version, in which case you’d need to upgrade or downgrade one or the other to get the versions in sync. Very unfortunate Apple doesn’t think this is an issue!