I tryed to compile the version LoRDEC-0.5.3-Source/ on my linux server. I have downloaded the version with the gatb-core included.
I obtain this error message :
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp: In function 'int correct_one_read(gatb::core::bank::Sequence, char*, gatb::core::debruijn::impl::Graph, gatb::core::system::IFile*, gatb::core::system::ISynchronizer*, int)':
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:622: erreur: template argument for 'template<class OutEdgeListS, class VertexListS, class DirectedS, class VertexProperty, class EdgeProperty, class GraphProperty, class EdgeListS> class boost::adjacency_list' uses local type 'correct_one_read(gatb::core::bank::Sequence, char*, gatb::core::debruijn::impl::Graph, gatb::core::system::IFile*, gatb::core::system::ISynchronizer*, int)::Path'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:622: erreur: trying to instantiate 'template<class OutEdgeListS, class VertexListS, class DirectedS, class VertexProperty, class EdgeProperty, class GraphProperty, class EdgeListS> class boost::adjacency_list'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:622: erreur: invalid type in declaration before ';' token
In file included from /env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:43:
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp: At global scope:
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp: In instantiation of 'boost::graph_traits<int>':
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:623: instantiated from here
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp:57: erreur: 'int' is not a class, struct, or union type
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp:58: erreur: 'int' is not a class, struct, or union type
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp: In instantiation of 'boost::graph_traits<int>':
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:623: instantiated from here
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp:65: erreur: 'int' is not a class, struct, or union type
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp:66: erreur: 'int' is not a class, struct, or union type
/env/cns/src/lordec/LoRDEC-0.5.3-Source/thirdparty/boost/graph/graph_traits.hpp:67: erreur: 'int' is not a class, struct, or union type
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp: In function 'int correct_one_read(gatb::core::bank::Sequence, char*, gatb::core::debruijn::impl::Graph, gatb::core::system::IFile*, gatb::core::system::ISynchronizer*, int)':
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:943: erreur: no matching function for call to 'add_edge(int&, int&, correct_one_read(gatb::core::bank::Sequence, char*, gatb::core::debruijn::impl::Graph, gatb::core::system::IFile*, gatb::core::system::ISynchronizer*, int)::Path&, path_graph_t&)'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:946: erreur: 'vertex_descriptor' was not declared in this scope
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:946: erreur: patron de l'argument 1 est invalide
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:946: erreur: patron de l'argument 2 est invalide
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:946: erreur: invalid type in declaration before '(' token
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:946: erreur: 'num_vertices' was not declared in this scope
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:948: erreur: expected ';' before 's'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:951: erreur: 's' was not declared in this scope
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:952: erreur: no matching function for call to 'get(int correct_one_read(gatb::core::bank::Sequence, char*, gatb::core::debruijn::impl::Graph, gatb::core::system::IFile*, gatb::core::system::ISynchronizer*, int)::Path::*, path_graph_t&)'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:953: erreur: request for member 'begin' in 'p', which is of non-class type 'int'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:953: erreur: no matching function for call to 'get(boost::vertex_index_t, path_graph_t&)'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:954: erreur: no matching function for call to 'get(boost::vertex_index_t, path_graph_t&)'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:965: erreur: invalid types 'int[int]' for array subscript
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:966: erreur: invalid types 'int[int]' for array subscript
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:971: erreur: no matching function for call to 'edge(int&, int&, path_graph_t&)'
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:972: erreur: 'e' was not declared in this scope
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:976: erreur: 'e' was not declared in this scope
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp: In function 'int main(int, char**)':
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:1589: erreur: expected primary-expression before '[' token
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:1589: erreur: expected primary-expression before ']' token
/env/cns/src/lordec/LoRDEC-0.5.3-Source/tools/lordec-correct/src/lordec-correct.cpp:1589: erreur: expected primary-expression before 'const'
make[2]: *** [tools/CMakeFiles/lordec-correct.dir/lordec-correct/src/lordec-correct.cpp.o] Erreur 1
make[1]: *** [tools/CMakeFiles/lordec-correct.dir/all] Erreur 2
make: *** [all] Erreur 2
I use the gcc version gcc-4.8.0
Can you help me to fix this problem??
Thanks
Are there any reasons not to use the binaries?
it doesn't work too...
What is your operating system and which version? And do you have Boost libraries installed?
Yes I have Boost Libraries installed
I work on a Linux system
which linux and which version of the particular flavour of linux?
@h.mon Thanks so much. You saved my day.
Could you please tell me what is the output of the cmake command ? In particular, the line that begins with "-- Options". In my case, I have gcc 4.8.3 on a Fedora20, I got this :
and LoRDEC compiles well.
The first error you got (
erreur: template argument for 'template<XXX> class boost::adjacency_list' uses local type
) may be related to the options detected by cmake while building the makefile (see here for instance).the output of my cmake command :
Ok, thanks. It seems that the issue comes from the lack of "-std=c++0x", undetected during the cmake execution because the gcc version is detected as being <=4.5. Note that LoRDEC should compile only with gcc version greater than 4.5.
The weird part is that you have a gcc version 4.8.0. I think that cmake is not able to detect it by default. Could you please tell what are the very first lines of the cmake execution that give the compiler (C and CXX) identification ?