I used this solution and it seemed to work for me - well it got me to the next problem anyway. Instead of changing all lines that point to cmake I just put a link to the system cmake in the folder that Reapr would have put the new cmake.
I cannot install Reapr. I receive this error message;
In file included from /home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_CXX.cxx:14:0:
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:94:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_PRI(i8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:47:16: error: pasting ""%"cmIML_INT_PRI" and "i8" does not give a valid preprocessing token
sprintf(buf, "%"cmIML_INT_PRI##PRI, x); \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:94:3: note: in expansion of macro ‘TEST_PRI’
TEST_PRI(i8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:96:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_SCN(i8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:67:18: error: pasting ""%"cmIML_INT_SCN" and "i8" does not give a valid preprocessing token
if(sscanf(str, "%"cmIML_INT_SCN##SCN, &y) != 1) \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:61:34: note: in expansion of macro ‘TEST_SCN2’
#define TEST_SCN(SCN, T, U, STR) TEST_SCN2(SCN, SCN, T, U, STR)
^~~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:96:3: note: in expansion of macro ‘TEST_SCN’
TEST_SCN(i8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:96:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_SCN(i8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:72:10: error: pasting "" expected [%"cmIML_INT_PRI" and "i8" does not give a valid preprocessing token
" expected [%"cmIML_INT_PRI##PRI"]," \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:61:34: note: in expansion of macro ‘TEST_SCN2’
#define TEST_SCN(SCN, T, U, STR) TEST_SCN2(SCN, SCN, T, U, STR)
^~~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:96:3: note: in expansion of macro ‘TEST_SCN’
TEST_SCN(i8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:96:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_SCN(i8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:73:10: error: pasting "" got [%"cmIML_INT_PRI" and "i8" does not give a valid preprocessing token
" got [%"cmIML_INT_PRI##PRI"]", x, y); \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:61:34: note: in expansion of macro ‘TEST_SCN2’
#define TEST_SCN(SCN, T, U, STR) TEST_SCN2(SCN, SCN, T, U, STR)
^~~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:96:3: note: in expansion of macro ‘TEST_SCN’
TEST_SCN(i8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:98:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_PRI(d8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:47:16: error: pasting ""%"cmIML_INT_PRI" and "d8" does not give a valid preprocessing token
sprintf(buf, "%"cmIML_INT_PRI##PRI, x); \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:98:3: note: in expansion of macro ‘TEST_PRI’
TEST_PRI(d8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:100:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_SCN(d8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:67:18: error: pasting ""%"cmIML_INT_SCN" and "d8" does not give a valid preprocessing token
if(sscanf(str, "%"cmIML_INT_SCN##SCN, &y) != 1) \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:61:34: note: in expansion of macro ‘TEST_SCN2’
#define TEST_SCN(SCN, T, U, STR) TEST_SCN2(SCN, SCN, T, U, STR)
^~~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:100:3: note: in expansion of macro ‘TEST_SCN’
TEST_SCN(d8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:100:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_SCN(d8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:72:10: error: pasting "" expected [%"cmIML_INT_PRI" and "d8" does not give a valid preprocessing token
" expected [%"cmIML_INT_PRI##PRI"]," \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:61:34: note: in expansion of macro ‘TEST_SCN2’
#define TEST_SCN(SCN, T, U, STR) TEST_SCN2(SCN, SCN, T, U, STR)
^~~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:100:3: note: in expansion of macro ‘TEST_SCN’
TEST_SCN(d8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:100:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_SCN(d8, int8_t, uint8_t, "-85")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:73:10: error: pasting "" got [%"cmIML_INT_PRI" and "d8" does not give a valid preprocessing token
" got [%"cmIML_INT_PRI##PRI"]", x, y); \
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:61:34: note: in expansion of macro ‘TEST_SCN2’
#define TEST_SCN(SCN, T, U, STR) TEST_SCN2(SCN, SCN, T, U, STR)
^~~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:100:3: note: in expansion of macro ‘TEST_SCN’
TEST_SCN(d8, int8_t, uint8_t, "-85")
^~~~~~~~
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:102:1: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
TEST_PRI(o8, uint8_t, uint8_t, "253")
^
/home/jpasicat/Downloads/Reapr_1.0.18/third_party/cmake/Utilities/KWIML/test/test_INT_format.h:47:16: error: pasting ""%"cmIML_INT_PRI" and "o8" does not give a valid preprocessing token
sprintf(buf, "%"cmIML_INT_PRI##PRI, x); \
^
Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/build.make:166: recipe for target 'Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_INT_CXX.cxx.o' failed
make[2]: *** [Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_INT_CXX.cxx.o] Error 1
CMakeFiles/Makefile2:986: recipe for target 'Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/all' failed
make[1]: *** [Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
1 answer
I do get similar errors when installing reaper that stem from KWIML, looks like newer version of g++ don't like KWIML.
I guess the safest bet you can have is to install VirtualBox and to set up the Sanger Pathogens Virtual Machine, that one comes with Reapr. That is a bit of a headache but it saves you the bigger headache of downgrading your g++. http://www.sanger.ac.uk/science/tools/reapr
Alternatively, most systems come with a fairly modern cmake so you can try to skip the installation of reapr's own cmake. For that you have to comment out some lines in install.sh so it looks like this:
#cd cmake
#./bootstrap --prefix $PWD
#make
#cd ..
you'll also have to replace all lines that explicitly mention cmake so that it uses your system's cmake, so it should look like
cmake ..
and then fingers crossed that the other dependencies will work fine with your system's cmake....
Log in to answer this question.
what was your command-line ?
Which operating system and version? Which compiler and compiler version?
I believe the key error message is
C++11 requires a space between literal and string macro.