Message: C++11 standard not being used Geant4-10.01.p02 Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question C++11 standard not being used Geant4-10.01.p02 

Forum: Installation and Configuration
Date: 25 Feb, 2016
From: Marcus O'Flaherty <Marcus O'Flaherty>

I am trying to migrate my application from Geant4-9.04 to Geant4-10.01.p02, so need to move from using GNUmake to CMake.
I am using the g++4.9 compiler, and have downloaded and built ROOT 6.04.14 with the -Dcxx11=ON flag (I believe it is set by default anyway).
I've then run CMake to generate build scripts for my application with the option -DGEANT4_BUILD_CXXSTD=11. Again, I believe geant4-10.01.p02 sets this by default, but this time I receive a message saying that manually specified variables were not used:

cmake -DGeant4_DIR=/home/marc/LinuxSystemFiles/GEANT4/geant4-10.01.p02/install/lib/Geant4-10.1.2/ -DCMAKE_INSTALL_PREFIX=/usr -DGEANT4_BUILD_CXXSTD=11 ../WChSandBox_v1
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:

GEANT4_BUILD_CXXSTD


-- Build files have been written to: /home/marc/LinuxSystemFiles/WChSandBox/build

My CMakeCache.txt file nonetheless contains the line:
GEANT4_BUILD_CXXSTD:UNINITIALIZED=11
which seems to suggest that even though my manual specifcation has been ignored, it still uses this option as an uninitialised default.
But still, when I run 'make' I receive error messages suggesting C++11 is not being specified:

In file included from /usr/include/c++/4.9/atomic:38:0,
from /usr/local/include/Rtypes.h:37,
from /usr/local/include/TObject.h:31,
from /usr/local/include/TNamed.h:26,
from /usr/local/include/TBranch.h:28,
from /usr/local/include/TTree.h:30,
from /home/marc/LinuxSystemFiles/WChSandBox/WChSandBox_v1/include/WCLitePrimaryGeneratorAction.hh:7,
from /home/marc/LinuxSystemFiles/WChSandBox/WChSandBox_v1/WChSandBox.cc:54:
/usr/include/c++/4.9/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

I have searched HyperNews and only found one thread documenting a similar issue with 10.01.p01, but the issue should be fixed in the next patch - which I have.
Does this look like a Geant issue? A ROOT issues? Can anyone suggest any measures/checks? Is this fix really in patch 02?

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Note: Re: C++11 standard not being used Geant4-10.01.p02   (Ben Morgan - 29 Feb, 2016)
(_ Ok: Re: C++11 standard not being used Geant4-10.01.p02   (Marcus O'Flaherty - 29 Feb, 2016)
 Add Message Add Message
to: "C++11 standard not being used Geant4-10.01.p02"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]