tophat2-2.0.13 not building with gcc-4.9.1 (error with SeqAn-1.3)

510 views
Skip to first unread message

Laurent Gautier

unread,
Oct 2, 2014, 2:26:13 PM10/2/14
to tuxedo-to...@googlegroups.com

The place breaking seems to be:

out: In file included from ./SeqAn-1.3/seqan/file.h:56:0,
out:                  from ./SeqAn-1.3/seqan/score/score_matrix.h:40,
out:                  from ./SeqAn-1.3/seqan/score.h:48,
out:                  from ./SeqAn-1.3/seqan/find.h:45,
out:                  from reads.cpp:21:
out: ./SeqAn-1.3/seqan/file/file_generated_forwards.h: At global scope:
out: ./SeqAn-1.3/seqan/file/file_generated_forwards.h:927:66: error: invalid abstract return type ‘seqan::FileFormat<TFile, TData, TMeta, void>’
out:  template <typename TFile, typename TData, typename TMeta> inline FileFormat<TFile, TData, TMeta, void> guessFileFormat(TFile & file, TData & data);        // "projects/library/seqan/file/file_format_guess.h"(65)

Keith Hughitt

unread,
Nov 13, 2014, 6:39:19 AM11/13/14
to tuxedo-to...@googlegroups.com
I can confirm this for GCC 4.9.2 as well.

See https://aur.archlinux.org/packages/tophat/ for some discussions relating to the issue.

Best,
Keith

Matthew Bashton

unread,
Nov 28, 2014, 11:44:00 AM11/28/14
to tuxedo-to...@googlegroups.com
Also have this issue on Ubuntu14.10 (utopic) which uses gcc-4.9.1 I get the following errors:

Makefile:1210: recipe for target 'reads.o' failed
make[2]: *** [reads.o] Error 1
make[2]: Leaving directory '/home/bashton/tophat-2.0.13/src'
Makefile:243: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/bashton/tophat-2.0.13'
Makefile:181: recipe for target 'all' failed
make: *** [all] Error 2


Grey Christoforo

unread,
Mar 10, 2015, 2:06:51 PM3/10/15
to tuxedo-to...@googlegroups.com
Anyone have an update on a possible fix for this issue? I'm also unable to build because of this issue and it seems to impact all of the other Arch Linux users as well.

Omar Eduardo Cornejo Ordaz

unread,
Nov 13, 2015, 7:46:28 PM11/13/15
to Tuxedo Tools Users
I am having a similar problem. I am working on ubuntu 15.10 (Wily). I tried running the pre-compiled version and it seems that 

segment_juncs is failing to identify the right libboost_thread.1.58.so (it is looking for libboost_thread.1.54.so)

  I tried to then compile it from scratch and I am running into a similar problem.

  I install the most recent boost libraries and I start installation of tophat-2.1.0 by:


sudo ./configure --with-boost=/usr/lib/x86_64-linux-gnu/


I get 


- tophat 2.1.0 Configuration Results --

  C++ compiler:        g++ -Wall -Wno-strict-aliasing -g -gdwarf-2 -Wuninitialized  -O3  -DNDEBUG -I./samtools-0.1.18 -pthread -I/usr/lib/x86_64-linux-gnu//include -I./SeqAn-1.3

  Linker flags:        -L./samtools-0.1.18 -L/usr/lib/x86_64-linux-gnu//lib 

  BOOST libraries:     -lboost_thread -lboost_system

  GCC version:         gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010

  Host System type:    x86_64-unknown-linux-gnu

  Install prefix:      /usr/local

  Install eprefix:     ${prefix}


  See config.h for further configuration information.

  Email bug reports to <tophat.c...@gmail.com>.


I clean the location to libboost libraries to remove "include" and "lib" which do not exist.


I then run:


sudo make 

and there is an error creating reads.o. I get series of warnings but the problems seem to be on:


./SeqAn-1.3/seqan/file/file_generated_forwards.h:927:66: error: invalid abstract return type ‘seqan::FileFormat<TFile, TData, TMeta, void>

 template <typename TFile, typename TData, typename TMeta> inline FileFormat<TFile, TData, TMeta, void> guessFileFormat(TFile & file, TData & data);

                                                                  ^

In file included from ./SeqAn-1.3/seqan/file.h:84:0,

                 from ./SeqAn-1.3/seqan/score/score_matrix.h:40,

                 from ./SeqAn-1.3/seqan/score.h:48,

                 from ./SeqAn-1.3/seqan/find.h:45,

                 from reads.cpp:22:



Makefile:1347: recipe for target 'reads.o' failed

make[2]: *** [reads.o] Error 1

make[2]: Leaving directory '/home/repository_software/tophat-2.1.0/src'

Makefile:313: recipe for target 'all-recursive' failed

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory '/home/repository_software/tophat-2.1.0'

Makefile:253: recipe for target 'all' failed

make: *** [all] Error 2


if there is any solution to this problem or if anyone has experienced something like this, I truly appreciate any advise. 


Omar

Blaise Li

unread,
Feb 11, 2016, 7:00:40 AM2/11/16
to Tuxedo Tools Users
For the record, same problem for me: https://www.biostars.org/p/173478/#176510

I can compile it on Ubuntu 14.04 (gcc 4.8.4), but on on on Debian (gcc 4.9.2).

bli

unread,
Feb 11, 2016, 7:03:27 AM2/11/16
to Tuxedo Tools Users
I forgot to mention that I was trying to compile tophat version 2.1.0

bli

unread,
Feb 11, 2016, 7:12:28 AM2/11/16
to Tuxedo Tools Users
If I guess correctly, this might be fixed by using a more recent version of the SeqAn library: https://bugs.launchpad.net/ubuntu/+source/tophat/+bug/1301200

I don't know how to make tophat use another version than the one that comes with tophat source.

bli

unread,
Feb 11, 2016, 7:48:24 AM2/11/16
to Tuxedo Tools Users
I tried to download a newer version of SeqAn, take the sequan.h that tophat source seems to provide and move it to the corresponding location in the newer SeqAn source, and patch the configure and configure.ac so that they use it instead of SeqAn-1.3, but now I get another error:

segment_juncs.cpp:4210:29:   required from here
./seqan-master/include/seqan/modifier/modifier_string.h:121:5: error: no type named 'Type' in 'struct seqan::EnableIf<seqan::IsConstructible<seqan::ModifiedString<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::Alloc<> >, seqan::ModView<seqan::FunctorComplement<seqan::SimpleType<unsigned char, seqan::Dna_> > > >, const seqan::String<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::Alloc<> > >, void>'
segment_juncs.cpp: In instantiation of 'void juncs_from_ref_segs(RefSequenceTable&, std::vector<RefSeg>&, PotentialJuncs&, const DnaString&, const DnaString&, int, int, size_t, bool, size_t) [with JunctionRecorder = RecordButterflyJuncs; PotentialJuncs = std::set<Junction, skip_count_lt>; seqan::DnaString = seqan::String<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::Alloc<> >; size_t = long unsigned int]':

bli

unread,
Feb 11, 2016, 8:37:33 AM2/11/16
to Tuxedo Tools Users
Solved my problem using a fork on github: https://github.com/wookietreiber/tophat.git

Once in the cloned repository, you need to "git checkout update-seqan" and it will use a slightly newer version of SeqAn.

Then:

./bootstrap
./configure <insert your options here>
make
make install

Reply all
Reply to author
Forward
0 new messages