compiling error
Hello,
I was trying to compile mgra on my system following the instruction. I passed the "cmake" step but got error in the "make" step. Please see the following error message for your reference. The version I used was directly obtained from github by git clone. Thanks in advance!
[yjx@octopus build]$ cmake ../src -- The C compiler identification is GNU 4.4.7 -- The CXX compiler identification is GNU 4.4.7 -- 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 -- 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 -- Configuring done -- Generating done -- Build files have been written to: /home/yjx/Programs/mgra/build [yjx@octopus build]$ make Scanning dependencies of target mgra [ 33%] Building CXX object CMakeFiles/mgra.dir/mgra.cpp.o In file included from /home/yjx/Programs/mgra/src/include/defined.h:29, from /home/yjx/Programs/mgra/src/include/reader.h:4, from /home/yjx/Programs/mgra/src/mgra.cpp:18: /home/yjx/Programs/mgra/src/include/utility/equivalence.h: In member function ‘void utility::equivalence<Item, Cmp>::update()’: /home/yjx/Programs/mgra/src/include/utility/equivalence.h:59: error: expected initializer before ‘:’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected primary-expression before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected ‘;’ before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected primary-expression before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected ‘)’ before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected primary-expression before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected ‘;’ before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h: In member function ‘size_t utility::equivalence<Item, Cmp>::classes()’: /home/yjx/Programs/mgra/src/include/utility/equivalence.h:80: error: expected initializer before ‘:’ token /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected primary-expression at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected ‘;’ at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected primary-expression at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected ‘)’ at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected statement at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected ‘}’ at end of input make[2]: *** [CMakeFiles/mgra.dir/mgra.cpp.o] Error 1 make[1]: *** [CMakeFiles/mgra.dir/all] Error 2 make: *** [all] Error 2
Thanks for your feedback and sorry for delay!
GCC 4.4 is too old (you need at least 4.6 for new C++ standard support). We strongly recommend to use GCC 4.8 version. The easiest thing you can do is to use our web-server - http://mgra.cblab.org/
And again sorry for delay.
Hi Avdeev, I've updated my GCC to 4.8 but it seems the problem still exists.
[yjx@octopus build]$ make [ 33%] Building CXX object CMakeFiles/mgra.dir/mgra.cpp.o In file included from /home/yjx/Programs/mgra/src/include/defined.h:29, from /home/yjx/Programs/mgra/src/include/reader.h:4, from /home/yjx/Programs/mgra/src/mgra.cpp:18: /home/yjx/Programs/mgra/src/include/utility/equivalence.h: In member function ‘void utility::equivalence<Item, Cmp>::update()’: /home/yjx/Programs/mgra/src/include/utility/equivalence.h:59: error: expected initializer before ‘:’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected primary-expression before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected ‘;’ before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected primary-expression before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected ‘)’ before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected primary-expression before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h:62: error: expected ‘;’ before ‘}’ token /home/yjx/Programs/mgra/src/include/utility/equivalence.h: In member function ‘size_t utility::equivalence<Item, Cmp>::classes()’: /home/yjx/Programs/mgra/src/include/utility/equivalence.h:80: error: expected initializer before ‘:’ token /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected primary-expression at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected ‘;’ at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected primary-expression at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected ‘)’ at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected statement at end of input /home/yjx/Programs/mgra/src/mgra.cpp:151: error: expected ‘}’ at end of input make[2]: *** [CMakeFiles/mgra.dir/mgra.cpp.o] Error 1 make[1]: *** [CMakeFiles/mgra.dir/all] Error 2 make: *** [all] Error 2 [yjx@octopus build]$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/opt/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ./configure --prefix=/opt/gcc-4.8.2/ Thread model: posix gcc version 4.8.2 (GCC) [yjx@octopus build]$
Hello Jia-Xing Yue
Please try new version. I hope that it is fixed problem.