Stan 2.16.2 install error


#1

Having trouble updating rstan to the latest version on Linux. These are the errors I get:

/R/x86_64-redhat-linux-gnu-library/3.3/StanHeaders/include/src/stan/lang/ast/node/conditional_op.hpp:40: error: ISO C++ forbids initialization of member ‘has_var_’
/R/x86_64-redhat-linux-gnu-library/3.3/StanHeaders/include/src/stan/lang/ast/node/conditional_op.hpp:40: error: making ‘has_var_’ static
/R/x86_64-redhat-linux-gnu-library/3.3/StanHeaders/include/src/stan/lang/ast/node/conditional_op.hpp:40: error: ISO C++ forbids in-class initialization of non-const static member ‘has_var_’
make: *** [lang__ast_def.o] Error 1

Any thoughts on what is going wrong?

Thanks!


#2

You need to add -std=c++11 to CXXFLAGS in your ~/.R/Makevars file


#3

Thanks for your feedback! Unfortunately I don’t have much of a computer science background, so I can’t really understand what that sentence means.


#4

It isn’t a computer science thing; it is just operating an account on a Linux server. Once you log into a shell, execute

echo "CXXFLAGS += -std=c++11" >> ~/.R/Makevars

and then it should be fine.


#5

Ok thanks so much for you patience! Sorry I also don’t have very much experience with Linux either :-/

I don’t seem to have the hidden file .R in my home directory. How should I proceed?


#6

#7

Just run this command without the quotes: “mkdir ~/.R”


#8

Ok so I tried doing this and I get the following error:

cc1plus: error: unrecognized command line option "-std=c++11"

My ~/.R/Makevars file looks like this:

CXXFLAGS=-O3 -mtune=native -march=native -Wno-unused-variable -Wno-unused-function
CXXFLAGS += -std=c++11

#9

What compiler and version are you using?


#10

Hi! I’m facing exactly the same issue. I’m compiling with gcc with the following version:

gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)

Thank you!


#11

If you are on Red Hat Enterprise 6 (and judging from that GCC version, that seems to be the case), I’d recommend getting (or asking the sysadmin to get) the free Red Hat Developer Toolset, which has a more up-to-date developer toolchain.


#12

Yeah when I updated to Red Hat 7, it fixed the install problem.


#13

I am not sure whether a stock RHEL7 is going to be adequate going forward. For Stan 2.18.x, the minimum requirement is going to be g++-4.9 or a more recent version of clang++. You can get those for RHEL7 but I don’t know if they come with RHEL7.


#14

Not to sound like a shill for RHEL, but you can get the Red Hat Developer Toolset for RHEL7 as well. It should have proper support for C++11.


#15

I’m now using gcc 6.3.1, but installing still fails with the error

 static type make(typename call_traits<A>::param_type... a)
             ^~~~

/usr/lib64/R/etc/Makeconf:166: recipe for target ‘lang__grammars__expression_grammar_inst.o’ failed
make: *** [lang__grammars__expression_grammar_inst.o] Error 1


#16

#17

Can confirm that this works. Thanks for the help.