This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Makefile:65: recipe for target 'SOAPdenovo-63mer' failed

Hi, I'm trying to install SOAP from here: link

Then I made a tar xvzf SOAPdenovo2-src-r240.tgz

And made a make

And I got an error:

/usr/bin/X11/ld: final link failed: Symbol needs debug section which does not exist
collect2: error: ld returned 1 exit status
Makefile:65: recipe for target 'SOAPdenovo-63mer' failed
make: *** [SOAPdenovo-63mer] Error 1

Here is all the report from the make:

make[1]: Entering directory '/panhome/bguinet/TOOLS/SOAPdenovo2-src-r240/sparsePregraph'
pregraph_sparse_63mer.v1.0.3 cleaning done.
multi_threads.cpp: In function 'void* threadRoutine(void*)':
multi_threads.cpp:93:3: error: 'usleep' was not declared in this scope
   usleep ( 1 );
   ^~~~~~
multi_threads.cpp:93:3: note: suggested alternative: 'fseek'
   usleep ( 1 );
   ^~~~~~
   fseek
multi_threads.cpp: In function 'void sendWorkSignal(unsigned char, unsigned char*)':
multi_threads.cpp:115:3: error: 'usleep' was not declared in this scope
   usleep ( 10 );
   ^~~~~~
multi_threads.cpp:115:3: note: suggested alternative: 'fseek'
   usleep ( 10 );
   ^~~~~~
   fseek
Error in command: g++  -c -O4 -fomit-frame-pointer  -D_63MER_ -m64  -I./inc multi_threads.cpp
build_preArc.cpp: In function 'void build_preArc_threaded(preArc_array*, vertex_hash2*, int, int, std::vector<std::__cxx11::basic_string<char> >*, int)':
build_preArc.cpp:1071:28: error: 'usleep' was not declared in this scope
   while ( io_ready == 0 ) {usleep ( 1 );}
                            ^~~~~~
build_preArc.cpp:1071:28: note: suggested alternative: 'beep'
   while ( io_ready == 0 ) {usleep ( 1 );}
                            ^~~~~~
                            beep
Error in command: g++  -c -O4 -fomit-frame-pointer  -D_63MER_ -m64  -I./inc build_preArc.cpp
pregraph_sparse.cpp: In function 'int call_pregraph_sparse(int, char**)':
pregraph_sparse.cpp:171:31: error: 'usleep' was not declared in this scope
      while ( io_ready == 0 ) {usleep ( 1 );}
                               ^~~~~~
pregraph_sparse.cpp:171:31: note: suggested alternative: 'fseek'
      while ( io_ready == 0 ) {usleep ( 1 );}
                               ^~~~~~
                               fseek
pregraph_sparse.cpp:284:31: error: 'usleep' was not declared in this scope
      while ( io_ready == 0 ) {usleep ( 1 );}
                               ^~~~~~
pregraph_sparse.cpp:284:31: note: suggested alternative: 'fseek'
      while ( io_ready == 0 ) {usleep ( 1 );}
                               ^~~~~~
                               fseek
pregraph_sparse.cpp: In function 'void initenv(int, char**)':
pregraph_sparse.cpp:504:2: error: 'optind' was not declared in this scope
  optind = 1;
  ^~~~~~
pregraph_sparse.cpp:504:2: note: suggested alternative: 'optarg'
  optind = 1;
  ^~~~~~
  optarg
pregraph_sparse.cpp:507:19: error: 'getopt' was not declared in this scope
  while ( ( copt = getopt ( argc, argv, "s:o:K:g:z:d:e:p:m:r:R" ) ) != EOF )
                   ^~~~~~
pregraph_sparse.cpp:507:19: note: suggested alternative: 'getpt'
  while ( ( copt = getopt ( argc, argv, "s:o:K:g:z:d:e:p:m:r:R" ) ) != EOF )
                   ^~~~~~
                   getpt
Error in command: g++  -c -O4 -fomit-frame-pointer  -D_63MER_ -m64  -I./inc pregraph_sparse.cpp
make[1]: Leaving directory '/panhome/bguinet/TOOLS/SOAPdenovo2-src-r240/sparsePregraph'
make[1]: Entering directory '/panhome/bguinet/TOOLS/SOAPdenovo2-src-r240/standardPregraph'
SOAPdenovo-63mer cleaning done.
contig.c: In function 'call_heavygraph':
contig.c:78:2: warning: implicit declaration of function 'swapedge'; did you mean 'loadEdge'? [-Wimplicit-function-declaration]
  swapedge();
  ^~~~~~~~
  loadEdge
contig.c:79:2: warning: implicit declaration of function 'sortedge'; did you mean 'loadEdge'? [-Wimplicit-function-declaration]
  sortedge();
  ^~~~~~~~
  loadEdge
contig.c:80:2: warning: implicit declaration of function 'freshArc' [-Wimplicit-function-declaration]
  freshArc();
  ^~~~~~~~
contig.c:144:3: warning: implicit declaration of function 'Iterate' [-Wimplicit-function-declaration]
   Iterate ( shortrdsfile, graphfile, maxk, M ); //keepReadFile,
   ^~~~~~~
contig.c:154:3: warning: implicit declaration of function 'freshpreGraphBasic' [-Wimplicit-function-declaration]
   freshpreGraphBasic ( iter, maxk, graphfile );
   ^~~~~~~~~~~~~~~~~~
cutTipPreGraph.c: In function 'clipTipFromNode':
cutTipPreGraph.c:127:3: warning: implicit declaration of function 'PrintKmer'; did you mean 'print_kmer'? [-Wimplicit-function-declaration]
   PrintKmer ( stderr, word );
   ^~~~~~~~~
   print_kmer
hashFunction.c: In function 'crc32cHardware64':
hashFunction.c:111:9: warning: implicit declaration of function '__builtin_ia32_crc32di'; did you mean '__builtin_ia32_bsrdi'? [-Wimplicit-function-declaration]
   crc = __builtin_ia32_crc32di ( crc, * ( uint64_t * ) data );
         ^~~~~~~~~~~~~~~~~~~~~~
         __builtin_ia32_bsrdi
loadPreGraph.c: In function 'kmer2vt':
loadPreGraph.c:222:4: warning: implicit declaration of function 'PrintKmer'; did you mean 'print_kmer'? [-Wimplicit-function-declaration]
    PrintKmer ( stderr, kmer );
    ^~~~~~~~~
    print_kmer
localAsm.c: In function 'traceAlongDBgraph':
localAsm.c:657:3: warning: implicit declaration of function 'PrintKmer'; did you mean 'print_kmer'? [-Wimplicit-function-declaration]
   PrintKmer ( stderr, word );
   ^~~~~~~~~
   print_kmer
node2edge.c: In function 'merge_linearV2':
node2edge.c:505:5: warning: implicit declaration of function 'PrintKmer'; did you mean 'print_kmer'? [-Wimplicit-function-declaration]
     PrintKmer ( stderr, wordplus );
     ^~~~~~~~~
     print_kmer
orderContig.c: In function 'score_pass':
orderContig.c:2411:15: warning: implicit declaration of function 'allConnect'; did you mean 'validConnect'? [-Wimplicit-function-declaration]
  int outnum = allConnect ( id, NULL );
               ^~~~~~~~~~
               validConnect
output_pregraph.c: In function 'output_1edge':
output_pregraph.c:92:2: warning: implicit declaration of function 'print_kmer_gz'; did you mean 'print_kmer'? [-Wimplicit-function-declaration]
  print_kmer_gz ( fp, edge->from_node, ',' );
  ^~~~~~~~~~~~~
  print_kmer
prlRead2path.c: In function 'searchKmer':
prlRead2path.c:356:3: warning: implicit declaration of function 'PrintKmer'; did you mean 'print_kmer'? [-Wimplicit-function-declaration]
   PrintKmer ( stderr, kmerBuffer[t] );
   ^~~~~~~~~
   print_kmer
scaffold.c: In function 'call_scaffold':
scaffold.c:90:2: warning: implicit declaration of function 'ScafStat' [-Wimplicit-function-declaration]
  ScafStat ( 100, graphfile );
  ^~~~~~~~
cutTip_graph2.c: In function 'removeLowCovEdges2':
cutTip_graph2.c:231:2: warning: implicit declaration of function 'linearConcatenate2'; did you mean 'linearConcatenate'? [-Wimplicit-function-declaration]
  linearConcatenate2 ( last );
  ^~~~~~~~~~~~~~~~~~
  linearConcatenate
read2edge.c: In function 'Read2edge':
read2edge.c:960:19: warning: implicit declaration of function 'read1seqInLibpos'; did you mean 'read1seqInLib'? [-Wimplicit-function-declaration]
  while ( ( flag = read1seqInLibpos ( seqBuffer[read_c], next_name, & ( lenBuffer[read_c] ), //file,
                   ^~~~~~~~~~~~~~~~
                   read1seqInLib
iterate.c: In function 'update1Edge':
iterate.c:406:3: warning: implicit declaration of function 'destroyEdge2'; did you mean 'destroyArcMem'? [-Wimplicit-function-declaration]
   destroyEdge2 ( index );
   ^~~~~~~~~~~~
   destroyArcMem
iterate.c: In function 'addArc':
iterate.c:780:3: warning: implicit declaration of function 'Read2edge2'; did you mean 'prlRead2edge'? [-Wimplicit-function-declaration]
   Read2edge2 ( libfile, graph, last, maxk ); //, keepReadFile
   ^~~~~~~~~~
   prlRead2edge
iterate.c:783:5: warning: implicit declaration of function 'Read2edge'; did you mean 'prlRead2edge'? [-Wimplicit-function-declaration]
   { Read2edge ( libfile, graph, maxk ); }
     ^~~~~~~~~
     prlRead2edge
iterate.c:795:2: warning: implicit declaration of function 'removeDeadArcs2'; did you mean 'removeDeadArcs'? [-Wimplicit-function-declaration]
  removeDeadArcs2();
  ^~~~~~~~~~~~~~~
  removeDeadArcs
iterate.c: In function 'checkindegree':
iterate.c:1169:3: warning: implicit declaration of function 'arcCount2'; did you mean 'arcCount'? [-Wimplicit-function-declaration]
   arcCount2 ( from_ed, &arcRight_n );
   ^~~~~~~~~
   arcCount
iterate.c: In function 'swapedge':
iterate.c:1653:5: warning: implicit declaration of function 'copyEdge'; did you mean 'copy1Edge'? [-Wimplicit-function-declaration]
     copyEdge ( i, num_ed + 1 + 1 );
     ^~~~~~~~
     copy1Edge
iterate.c: In function 'Iterate':
iterate.c:2566:4: warning: implicit declaration of function 'removeWeakEdges2'; did you mean 'removeWeakEdges'? [-Wimplicit-function-declaration]
    removeWeakEdges2 ( cutlen, 1, mink );
    ^~~~~~~~~~~~~~~~
    removeWeakEdges
iterate.c:2567:4: warning: implicit declaration of function 'removeLowCovEdges2'; did you mean 'removeLowCovEdges'? [-Wimplicit-function-declaration]
    removeLowCovEdges2 ( cutlen, deLowEdge, mink, 0 );
    ^~~~~~~~~~~~~~~~~~
    removeLowCovEdges
iterate.c:2576:4: warning: implicit declaration of function 'cutTipsInGraph2'; did you mean 'cutTipsInGraph'? [-Wimplicit-function-declaration]
    cutTipsInGraph2 ( cutlen, 0, 0 );
    ^~~~~~~~~~~~~~~
    cutTipsInGraph
make[1]: Leaving directory '/panhome/bguinet/TOOLS/SOAPdenovo2-src-r240/standardPregraph'
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(bam.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(bam_import.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(sam.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(bam_pileup.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(faidx.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(knetfile.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(sam_header.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(bgzf.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(kstring.o): relocation R_X86_64_32 against `.text' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(bam_aux.o): relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/X11/ld: ./sparsePregraph/inc/libbam.a(razf.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
standardPregraph/main.o: In function `main':
main.c:(.text.startup+0xee): undefined reference to `call_pregraph_sparse'
/usr/bin/X11/ld: final link failed: Symbol needs debug section which does not exist
collect2: error: ld returned 1 exit status
Makefile:65: recipe for target 'SOAPdenovo-63mer' failed
make: *** [SOAPdenovo-63mer] Error 1

Does someone have any idea why it does not work? And what could I do to fix it?

Thank you.

assembly soapdenovo

This could be due to compiler incompatibility. What OS and version of GCC compiler are you using?

In fact it is in my lab server, how can I know the version you are asking for, I'm not admin.

Can you ask the admin to compile and install in that case?

cat /etc/issue will tell which operating system, gcc -v will tell the version of GCC.

Hello Toto, If u are using Ubuntu use the command below

sudo apt-get install gcc-c++

Or if u r using fedora use the below command

sudo dnf install gcc-c++

Then use 'make' command

1 answer

Make your life simpler, either download the pre-compiled SOAPdenovo2-bin-LINUX-generic-r240 binary, or use conda to install it.

Log in to answer this question.