Die ROOT-Installation mit cmake ist erfolgreich, aber nicht nutzbar

Die ROOT-Installation mit cmake ist erfolgreich, aber nicht nutzbar

Ich arbeite derzeit mit Ubuntu 16.04.3 LTS. Sie sollten wissen, dass ich mit allen Linux-Umgebungen vollkommen vertraut bin. Entschuldigen Sie daher bitte meinen Mangel an Details, falls es welche gibt.

Ich muss mit der Bibliothek ROOT für C++ arbeiten, die vom CERN entwickelt wurde. Die Installation mit sudo make installist fehlgeschlagen und ich musste sie über installieren cmake.

Wenn ich ein Terminal starte und eingebe root, scheint es zu funktionieren und alle Informationen werden korrekt angezeigt.

Wenn ich jedoch Folgendes verwende makefile(am Ende des Beitrags enthalten), erhalte ich einen wirklich ausführlichen Fehlerbericht, der mit Folgendem beginnt:

g++ -Wall -c -o Precision_DiffFinie.o -I`~/root-6.12.04/builddir/bin/root-config --incdir`  Precision_DiffFinie.cpp 
 In file included from /home/benjamin/root-6.12.04/builddir/include/RtypesCore.h:23:0,
             from /home/benjamin/root-6.12.04/builddir/include/Rtypes.h:23,
             from /home/benjamin/root-6.12.04/builddir/include/TObject.h:17,
             from /home/benjamin/root-6.12.04/builddir/include/TNamed.h:25,
             from /home/benjamin/root-6.12.04/builddir/include/TGraph.h:24,
             from Precision_DiffFinie.cpp:15:
/home/benjamin/root-6.12.04/builddir/include/RConfig.h:47:4: error: #error "ROOT requires support for C++11 or higher."
 #  error "ROOT requires support for C++11 or higher."
^
 /home/benjamin/root-6.12.04/builddir/include/RConfig.h:49:5: error:  #error "Pass `-std=c++11` as compiler argument."
 #error "Pass `-std=c++11` as compiler argument."
 ^
In file included from /usr/include/c++/5/atomic:38:0,
             from /home/benjamin/root-6.12.04/builddir/include/Rtypes.h:29,
             from /home/benjamin/root-6.12.04/builddir/include/TObject.h:17,
             from /home/benjamin/root-6.12.04/builddir/include/TNamed.h:25,
             from /home/benjamin/root-6.12.04/builddir/include/TGraph.h:24,
             from Precision_DiffFinie.cpp:15:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support \

Ich denke, die folgenden Fehler sind darauf zurückzuführen, dass der C++-Compiler nicht verstanden hat, was ich geschrieben habe, da er keine Verknüpfung zur ROOT-Bibliothek herstellen konnte.

Weiß jemand, wie man das behebt, oder kann mir jemand erklären, was ich falsch mache? Ich habe versucht, alles richtig zu machen, aber ich habe bestimmt etwas übersehen; und ich habe jetzt schon zu lange versucht, das zu beheben, um selbst irgendetwas zu verstehen.

Der makefile:

# Makefile pour les exercices de calculs numeriques

# definition du compilateur
GPP=g++ -Wall

# lien vers les fichiers d'en-tete des classes ROOT (ROOTINC) et les librairies (ROOTLIB), cad les fichiers binaires
ROOTINC=-I`root-config --incdir`
ROOTLIB=`root-config --libs`

#La liste des executables a compiler
# les executables sont en .exe pour pouvoir beneficier de la regle generique de conversion de .o en .exe
EXE=MinMaxTableau.exe Optimisation_CalculSerie.exe Precision_DiffFinie.exe MethodeSecante.exe

#######################################################################################

# la premiere instruction du makefile est celle par défaut - quand on tape make sans donner d'argument après

all: ${EXE} 

####################################################################################### 

# Compilation

# Des classes
%.o:%.cpp %.h
    ${GPP} -c -o $@ ${ROOTINC}  $<

# Des programmes principaux
%.o:%.cpp
    ${GPP} -c -o $@ ${ROOTINC}  $<  

#######################################################################################

# Edition des liens
# Regle de conversion de chaque .o en .exe
%.exe: %.o 
    ${GPP} -o $@ $^ ${ROOTLIB}

#######################################################################################

# nettoyage
clean:
    rm -rf *.o ${EXE} *.pdf *.root *.png Print

Vielen Dank.

Antwort1

Ich sehe dasGewöhnliche makeBuilds werden vom CERN nicht empfohlen, aber du kannst es versuchen.

wget https://root.cern.ch/download/root_v6.12.04.source.tar.gz
tar -xzf root_v6.12.04.source.tar.gz

sudo apt-get install git dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev \
libxft-dev libxext-dev

sudo apt-get install gfortran libssl-dev libpcre3-dev \
xlibmesa-glu-dev libglew1.5-dev libftgl-dev \
libmysqlclient-dev libfftw3-dev libcfitsio-dev \
graphviz-dev libavahi-compat-libdnssd-dev \
libldap2-dev python-dev libxml2-dev libkrb5-dev \
libgsl0-dev libqt4-dev

./configure
make -j4
sudo make install

Und zu Ihrer Information: Ubuntu Xenial hatROOT 5.34-Pakete in Repositories. Sie können sie installieren mit

sudo apt-get install root-system-bin

verwandte Informationen