CINT and c++11 standard

Dear All,

I was generating my dictionary without problem using a Makefile and some options.
Since I moved on ROOT 5.34.36 with GCC 4.9, I get some trouble with it

It noticed that “root-config --cflags” gives “-pthread -std=c++11 -Wno-deprecated-declarations -m64 -I/afs/”

And the “-std=c++11” option makes the things bad… :frowning:
Someone knows how to get rid of that and use the std=c++11 option ?


CINT          = rootcint
ARCH          = $(shell root-config --arch)

# Linux with egcs
CXX           =  g++
CXXFLAGS      = -g -O -Wall -fPIC -Wno-deprecated
CXXFLAGS     += $(shell root-config --cflags)

ROOTFLAGS     += $(shell root-config --libs)

HEADERS = .... # List of headers

Dictionary.cxx: $(HEADERS) LinkDef.h
        @echo -ne "\tGenerating dictionary.. "
        @echo $(CINT) -f $@ -c $(CXXFLAGS) -p $^
        @echo " done"

I followed this link to process my Dictionary … s-rootcint

But actually I don’t know if I should do this :
CXXFLAGS = -g -O -Wall -fPIC -Wno-deprecated
CXXFLAGS += $(shell root-config --cflags)

Instead of this :
CXXFLAGS = -g -O -Wall -fPIC -Wno-deprecated
ROOTFLAGS = $(shell root-config --cflags)

And then use ROOTFLAGS when it’s necessary ? Someone could explain to me when it’s necessary btw ? I though it was mandatory to compile with ROOTFLAGS when you try to generate a Dictionary. (In my LinkDef there is no ROOT specificity, so maybe I can remove it)

In fact to generate the dictionary you will not need any of the CXXFLAGS since there is no compilation involved, only interpretation by CINT and code generation. The only flags that are needed are the preprocessor flags (-I, -D, -U, …) that changes what rootcint sees at the end.