bioinfologics / w2rap-contigger

An Illumina PE genome contig assembler, can handle large (17Gbp) complex (hexaploid) genomes.
http://bioinfologics.github.io/the-w2rap-contigger/
MIT License
44 stars 14 forks source link

Undefined reference to `std::__throw_logic_error(char const*)' #10

Closed rrlove closed 8 years ago

rrlove commented 8 years ago

Hi,

In trying to install the w2rap-contigger on a Red Hat cluster, I'm repeatedly getting an error during the make step, in "Linking CXX executable bin/04_patching." The initial error message is:

[ 92%] Building CXX object CMakeFiles/04_patching.dir/src/paths/long/large/Unsat.cc.o Linking CXX executable bin/04_patching CMakeFiles/01_unipaths.dir/src/modules/unipaths_01.cc.o: In function _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.115': /afs/crc.nd.edu/x86_64_linux/g/gcc/5.2.0/build/include/c++/5.2.0/bits/basic_string.tcc:216: undefined reference tostd::__throw_logic_error(char const*)'

Followed by about half a million other lines of undefined references and similar errors (too large to attach in its entirety, but I included the first 10% in case it's helpful w2rap-contigger_compilation_error_output.snippet_1.txt ).

The cmake step completes without a problem:

cmake -D CMAKE_CXX_COMPILER=gcc -D MALLOC_LIBRARY=/afs/crc.nd.edu/user/r/rlove1/local/bin/jemalloc-4.2.1/lib/libjemalloc.so . -- The C compiler identification is GNU 4.4.7 -- The CXX compiler identification is GNU 5.2.0 -- 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 -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /afs/crc.nd.edu/x86_64_linux/g/gcc/5.2.0/build/bin/gcc -- Check for working CXX compiler: /afs/crc.nd.edu/x86_64_linux/g/gcc/5.2.0/build/bin/gcc -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /afs/crc.nd.edu/user/r/rlove1/local/bin/w2rap-contigger

From the verbosity of the error messages, it seems like something very basic has gone missing or been delinked, but I'm not sure what it is.

This is with cmake 3.2.2 and gcc 5.2.0.

Thanks, Becca

bjclavijo commented 8 years ago

Hi Becca, you're defining gcc as your CXX c++ compiler, you should be using g++ for that. I think that will solve your problem, because basically you're getting a fault at linking all the c++ libraries.

Tell me if that solves your problem and i'll just close this issue then :D

Best,

bj

rrlove commented 8 years ago

Short answer: yes, that solves it, thanks!

Long answer: I had tried that first and it didn't work, but I was using the wrong gcc. I didn't correctly understand you need to compile with g++ but use a certain gcc to get access to the right GCC-- can't imagine how I came to confuse those latter two...

Anyway, thanks!

bjclavijo commented 8 years ago

Great, let us know how this works for you. There will be an updated version soon too.