RinGotou / Kagami

This project is suspending. Please visit Sapphire Language repository.
BSD 2-Clause "Simplified" License
28 stars 3 forks source link

Compiling error on Windows Subsystem Linux(Ubuntu 18.04 LTS) #123

Closed RinGotou closed 4 years ago

RinGotou commented 4 years ago

Environment: Windows 10 1909, Windows Subsystem Linux(Ubuntu 18.04 LTS) Compiler:gcc version 8.3.0 (Ubuntu 8.3.0-6ubuntu1~18.04.1)

Compiler output:

Scanning dependencies of target kagami
[  4%] Building CXX object src/CMakeFiles/kagami.dir/basic_comp.cc.o
[  8%] Building CXX object src/CMakeFiles/kagami.dir/containers.cc.o
[ 12%] Building CXX object src/CMakeFiles/kagami.dir/extension_obj.cc.o
[ 16%] Building CXX object src/CMakeFiles/kagami.dir/function_obj.cc.o
[ 20%] Building CXX object src/CMakeFiles/kagami.dir/graphics.cc.o
[ 24%] Building CXX object src/CMakeFiles/kagami.dir/kagami.cc.o
/home/rin/kagami/src/kagami.cc: In function ‘void InitFromConfigFile()’:
/home/rin/kagami/src/kagami.cc:141:20: warning: format not a string literal and no format arguments [-Wformat-security]
     printf(e.what());
                    ^
/home/rin/kagami/src/kagami.cc:144:20: warning: format not a string literal and no format arguments [-Wformat-security]
     printf(e.what());
                    ^
/home/rin/kagami/src/kagami.cc:147:20: warning: format not a string literal and no format arguments [-Wformat-security]
     printf(e.what());
                    ^
[ 28%] Building CXX object src/CMakeFiles/kagami.dir/machine.cc.o
/home/rin/kagami/src/machine.cc: In member function ‘void kagami::Machine::CommandCheckParameterPattern(kagami::ArgumentList&)’:
/home/rin/kagami/src/machine.cc:2665:37: warning: comparison between ‘enum kagami::FunctionImplType’ and ‘enum kagami::ParameterPattern’ [-Wenum-compare]        Object result(impl.GetType() == pattern, kTypeIdBool);
                                     ^~~~~~~
/home/rin/kagami/src/machine.cc: In instantiation of ‘void kagami::Machine::CommandCheckParameterPattern(kagami::ArgumentList&) [with kagami::ParameterPattern pattern = (kagami::ParameterPattern)0; kagami::ArgumentList = std::deque<kagami::Argument>]’:
/home/rin/kagami/src/machine.cc:2875:56:   required from here
/home/rin/kagami/src/machine.cc:2665:34: warning: comparison between ‘enum kagami::FunctionImplType’ and ‘enum kagami::ParameterPattern’ [-Wenum-compare]        Object result(impl.GetType() == pattern, kTypeIdBool);
                   ~~~~~~~~~~~~~~~^~~~~~~~~~
/home/rin/kagami/src/machine.cc: In instantiation of ‘void kagami::Machine::CommandCheckParameterPattern(kagami::ArgumentList&) [with kagami::ParameterPattern pattern = (kagami::ParameterPattern)1; kagami::ArgumentList = std::deque<kagami::Argument>]’:
/home/rin/kagami/src/machine.cc:2878:56:   required from here
/home/rin/kagami/src/machine.cc:2665:34: warning: comparison between ‘enum kagami::FunctionImplType’ and ‘enum kagami::ParameterPattern’ [-Wenum-compare]   [ 32%] Building CXX object src/CMakeFiles/kagami.dir/management.cc.o
In file included from /usr/include/c++/8/bits/stl_algobase.h:64,
                 from /usr/include/c++/8/bits/char_traits.h:39,
                 from /usr/include/c++/8/string:40,
                 from /home/rin/kagami/src/common.h:18,
                 from /home/rin/kagami/src/lexical.h:2,
                 from /home/rin/kagami/src/message.h:2,
                 from /home/rin/kagami/src/vmcode.h:2,
                 from /home/rin/kagami/src/function.h:2,
                 from /home/rin/kagami/src/management.h:2,
                 from /home/rin/kagami/src/management.cc:1:
/usr/include/c++/8/bits/stl_pair.h: In instantiation of ‘struct std::pair<const std::__cxx11::basic_string<char>, kagami::VMCode>’:
/home/rin/kagami/src/management.cc:289:27:   required from here
/usr/include/c++/8/bits/stl_pair.h:303:17: error: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = const std::__cxx11::basic_string<char>; _T2 = kagami::VMCode]’ declared to take const reference, but implicit declaration would take non-const
       constexpr pair(const pair&) = default;
                 ^~~~
/usr/include/c++/8/bits/stl_pair.h: In instantiation of ‘struct std::pair<std::__cxx11::basic_string<char>, kagami::VMCode>’:
/home/rin/kagami/src/management.cc:304:51:   required from here
/usr/include/c++/8/bits/stl_pair.h:303:17: error: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = kagami::VMCode]’ declared to take const reference, but implicit declaration would take non-const
src/CMakeFiles/kagami.dir/build.make:326: recipe for target 'src/CMakeFiles/kagami.dir/management.cc.o' failed
make[2]: *** [src/CMakeFiles/kagami.dir/management.cc.o] Error 1
CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/kagami.dir/all' failed
make[1]: *** [src/CMakeFiles/kagami.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
RinGotou commented 4 years ago

Seems no ploblem on regular Linux distro running on physical machine. Need further checking.

RinGotou commented 4 years ago

Solved in d5ee70bbde38e18d7f516998981aa4543de09771

RinGotou commented 4 years ago

keep tracking in #124