Dear all,
I am building allpix2 on my MacBook, compiler is AppleClang 12.0.5.12050022
I got this error about the root compiled version:
– Performing Test CXX_FLAG_WORKS__Wdeprecated - Success
– Performing Test CXX_FLAG_WORKS__fdiagnostics_colorEauto
– Performing Test CXX_FLAG_WORKS__fdiagnostics_colorEauto - Success
– Performing Test CXX_FLAG_WORKS__Wheader_hygiene
– Performing Test CXX_FLAG_WORKS__Wheader_hygiene - Success
– Performing Test CXX_FLAG_WORKS__Wno_overloaded_virtual
– Performing Test CXX_FLAG_WORKS__Wno_overloaded_virtual - Success
– Using Ccache: /usr/local/bin/ccache
– Performing Test SUPPORT_STD_CXX17
– Performing Test SUPPORT_STD_CXX17 - Success
– Looking for C++ include pthread.h
– Looking for C++ include pthread.h - found
– Performing Test CMAKE_HAVE_LIBC_PTHREAD
– Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
– Found Threads: TRUE
– Found Boost: /usr/local/lib/cmake/Boost-1.75.0/BoostConfig.cmake (found suitable version “1.75.0”, minimum required is “1.64.0”) found components: random
CMake Error at CMakeLists.txt:240 (MESSAGE):
ROOT was built with an unsupported C++ version, C++17 is required:
-std=c++11 -m64 -pipe -fsigned-char -fno-common -Qunused-arguments -pthread
-stdlib=libc++
Do you know what it is complaining about?
Thank in advance,
Cheers,
Francesco
Hi all,
I maneged to solve this issue by compiling ROOT with c++17, now I have this other issue when I build allpix2:
[ 78%] Building CXX object tools/mesh_converter/CMakeFiles/mesh_converter.dir/MeshElement.cpp.o
[ 79%] Building CXX object tools/mesh_converter/CMakeFiles/mesh_converter.dir/MeshConverter.cpp.o
In file included from /Users/francescofollega/Documents/geant4_software/allpix-squared/tools/mesh_converter/MeshConverter.cpp:21:
In file included from /Users/francescofollega/Documents/geant4_software/allpix-squared/src/core/module/ThreadPool.hpp:295:
/Users/francescofollega/Documents/geant4_software/allpix-squared/src/core/module/ThreadPool.tpp:19:51: warning: ISO C++ requires the name after ‘::~’ to be found in the same scope as the name before ‘::~’ [-Wdtor-name]
template ThreadPool::SafeQueue::~SafeQueue() { invalidate(); }
~~~~~~~~~~~~~~~~~~~~~~~~
::SafeQueue
In file included from /Users/francescofollega/Documents/geant4_software/allpix-squared/tools/mesh_converter/MeshConverter.cpp:24:
/Users/francescofollega/Documents/geant4_software/allpix-squared/src/tools/ROOT.h:28:10: fatal error: ‘TH1.h’ file not found
#include <TH1.h>
^~~~~~~
1 warning and 1 error generated.
make[2]: *** [tools/mesh_converter/CMakeFiles/mesh_converter.dir/MeshConverter.cpp.o] Error 1
make[1]: *** [tools/mesh_converter/CMakeFiles/mesh_converter.dir/all] Error 2
make: *** [all] Error 2
Do you know what is causing the crash?
Thanks!
Francesco
Hi @ffollega
Yes, we do require C++17 for the latest version, and this entails a ROOT version compiled against the same standard - but this you have found out already.
Your second error likely stems from the fact that your compiled ROOT (make
) but did not install it (make install
) but sourced it from its build directory. This doesn’t work since some paths are only properly populated at install time.
Cheers
Simon
Dear @simonspa,
thanks for your answer. Your advises solved my problem!
Cheers,
Francesco