This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Cannot Install Reapr

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
reapr ubuntu

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.

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....

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.

Log in to answer this question.