I try to install vg in ubuntu14, I have update g++, gcc and cmake and installed Protobuf 3. But faced an error, please help me how to resolve the problem, thank you!!! gcc (GCC) 4.9.1
g++ (GCC) 4.9.1
cmake version 3.16.4
The error is:
(cactus) bac@bac-IPP:~/software/vg$ . ./source_me.sh && make
. ./source_me.sh && cd deps/libhandlegraph && cmake . && make && cp libhandlegraph.a /home/bac/software/vg/lib && cp -r src/include/handlegraph /home/bac/software/vg/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/bac/software/vg/deps/libhandlegraph
make[1]: Entering directory `/home/bac/software/vg/deps/libhandlegraph'
make[2]: Entering directory `/home/bac/software/vg/deps/libhandlegraph'
make[3]: Entering directory `/home/bac/software/vg/deps/libhandlegraph'
make[3]: Leaving directory `/home/bac/software/vg/deps/libhandlegraph'
make[3]: Entering directory `/home/bac/software/vg/deps/libhandlegraph'
[ 33%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o
In file included from /home/bac/software/vg/deps/libhandlegraph/src/handle.cpp:1:0:
/home/bac/software/vg/deps/libhandlegraph/src/include/handlegraph/handle_graph.hpp: In member function ‘bool handlegraph::HandleGraph::for_each_edge(const Iteratee&, bool) const’:
/home/bac/software/vg/deps/libhandlegraph/src/include/handlegraph/handle_graph.hpp:216:65: error: expected primary-expression before ‘)’ token
return for_each_handle((std::function<bool(const handle_t&)>)[&](const handle_t& handle) -> bool {
^
/home/bac/software/vg/deps/libhandlegraph/src/include/handlegraph/handle_graph.hpp:216:68: error: expected primary-expression before ‘]’ token
return for_each_handle((std::function<bool(const handle_t&)>)[&](const handle_t& handle) -> bool {
^
/home/bac/software/vg/deps/libhandlegraph/src/include/handlegraph/handle_graph.hpp:216:70: error: expected primary-expression before ‘const’
return for_each_handle((std::function<bool(const handle_t&)>)[&](const handle_t& handle) -> bool {
^
/home/bac/software/vg/deps/libhandlegraph/src/include/handlegraph/handle_graph.hpp:216:97: error: expected unqualified-id before ‘bool’
return for_each_handle((std::function<bool(const handle_t&)>)[&](const handle_t& handle) -> bool {
^
/home/bac/software/vg/deps/libhandlegraph/src/include/handlegraph/handle_graph.hpp: In instantiation of ‘bool handlegraph::HandleGraph::for_each_edge(const Iteratee&, bool) const [with Iteratee = handlegraph::HandleGraph::get_edge_count() const::<lambda(const edge_t&)>]’:<="" p="">
/home/bac/software/vg/deps/libhandlegraph/src/handle.cpp:81:6: required from here
/home/bac/software/vg/deps/libhandlegraph/src/include/handlegraph/handle_graph.hpp:240:1: error: no return statement in function returning non-void [-Werror=return-type] }
^ cc1plus: some warnings being treated as errors
make[3]: * [CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o] Error 1
make[3]: Leaving directory `/home/bac/software/vg/deps/libhandlegraph'
make[2]: * [CMakeFiles/handlegraph_objs.dir/all] Error 2
make[2]: Leaving directory `/home/bac/software/vg/deps/libhandlegraph'
make[1]: * [all] Error 2
make[1]: Leaving directory `/home/bac/software/vg/deps/libhandlegraph' make: * [lib/libhandlegraph.a] Error 2
1 answer
This is a kind of error that is difficult to troubleshoot from the information you provided. Generally speaking, your compiler is probably too old (despite them saying than anything higher than GCC 4.9 should work), or you are lacking proper program dependencies. You can save yourself lots of trouble by downloading a static binary from this page - I tried it and it works.
Log in to answer this question.