Skip to content

electron-rebuild and g++ issue #55

Open
@systemmind

Description

@systemmind

I using electron and when I run electron-rebuild command it shows such error:

  CXX(target) Release/obj.target/msgpackBinding/src/msgpack.o                                                                                                                                              
In file included from /home/pi/.electron-gyp/11.2.3/include/node/v8.h:30,                                                                                                                                  
                 from ../src/msgpack.cc:1:                                                                                                                                                                 
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h: In function ‘void v8::internal::PerformCastCheck(T*)’:                                                                                           
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: error: ‘remove_cv_t’ is not a member of ‘std’                                                                                             
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);                                                                                                                              
                                      ^~~~~~~~~~~                                                                                                                                                          
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: note: suggested alternative: ‘remove_cv’                                                                                                  
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);                                                                                                                              
                                      ^~~~~~~~~~~                                                                                                                                                          
                                      remove_cv                                                                                                                                                            
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: error: ‘remove_cv_t’ is not a member of ‘std’                                                                                             
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: note: suggested alternative: ‘remove_cv’                                                                                                  
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);                                                                                                                              
                                      ^~~~~~~~~~~                                                                                                                                                          
                                      remove_cv                                                                                                                                                            
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:50: error: template argument 2 is invalid                                                                                                     
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);                                                                                                                              
                                                  ^                                                                                                                                                        
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:63: error: ‘::Perform’ has not been declared                                                                                                  
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);                                                                                                                              
                                                               ^~~~~~~                                                                                                                                     
/home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:63: note: suggested alternative: ‘perror’                                                                                                     
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);                                                                                                                              
                                                               ^~~~~~~                                                                                                                                     
                                                               perror

This issue appears because we have -std=c++11 flag in binding.gyp file:

            'cflags_cc': [
                    '-Wall',
                    '-O3',
                    '-std=c++11',
                ],

Changing this flag to -std=c++14 or removing it fixes the issue.

I am working on linux with gcc-8.

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