Skip to content

Installation error: no longer compatible with C++14 ? #154

@theGitpster45

Description

@theGitpster45

Greetings
I tried to install Mirheo in a device with CUDA 10.1.0 installed.
According to the docs, the system should meet the requirements for the package, but I get the following error after I run make install :
nvcc fatal : Value 'c++17' is not defined for option 'std'

These are the compilers that the system uses by default. And I confirm that the rest of required libraries are properly installed.

  • gcc/g++ : 7.3.1 20180303 (Red Hat 7.3.1-5)
  • nvcc : Cuda compilation tools, release 10.1, V10.1.243

The workaround that I found is using the previous release version ( v1.6.0 )

git clone -b v1.6.0 --recursive https://github.com/cselab/Mirheo.git

The error regarding c++17 dissappears with it, but then is replaced by the following error:

[ 51%] Building CXX object src/mirheo/core/CMakeFiles/mirheoCore.dir/pvs/packers/rods.cpp.o
[ 51%] Building CXX object src/mirheo/core/CMakeFiles/mirheoCore.dir/pvs/particle_vector.cpp.o
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/string:52:0,
from /home/testuser/Mirheo/src/mirheo/core/utils/file_wrapper.h:5,
from/home/testuser/Mirheo/src/mirheo/core/logger.h:4,
from /home/testuser/Mirheo/src/mirheo/core/containers.h:4,
from /home/testuser/Mirheo/src/mirheo/core/pvs/particle_vector.h:4,
from /home/testuser/Mirheo/src/mirheo/core/pvs/particle_vector.cpp:2:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h: In instantiation of ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&, std::__false_type) [with _InIterator = std::basic_string; _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator]’:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h:5054:27: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with _InIterator = std::basic_string; _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:679:31: required from ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with _InputIterator = std::basic_string; _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator]’
/home/testuser/Mirheo/src/mirheo/core/pvs/particle_vector.cpp:210:97: required from here
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h:5032:76: error: no type named ‘iterator_category’ in ‘struct std::iterator_traits<std::basic_string >’
typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
^~~~
make[3]: *** [src/mirheo/core/CMakeFiles/mirheoCore.dir/build.make:1174: src/mirheo/core/CMakeFiles/mirheoCore.dir/pvs/particle_vector.cpp.o] Error 1
make[3]: Leaving directory '/home/testuser/Mirheo/build'
make[2]: *** [CMakeFiles/Makefile2:1125: src/mirheo/core/CMakeFiles/mirheoCore.dir/all] Error 2
make[2]: Leaving directory '/home/testuser/Mirheo/build'
make[1]: *** [Makefile:149: all] Error 2
make[1]: Leaving directory '/home/testuser/Mirheo/build'
make: *** [Makefile:10: build] Error 2

Is there any solution ? Or if it was already fixed, is the associated commit somewhere before or after the migration to C++17 ??

Thank you in advance for the hard work !!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions