Menu

#151 ecolab.5.D26 does not link agaist Debian igraph

ecolab
closed
nobody
None
1
2015-10-19
2015-07-28
No

If the Debian package libigraph0-dev 0.7.1-2 is present then ecolab.5.D26 will not compile

running "make" gives the following errors (see below). The problem does not seem to be caused by igraph as, for instance, /usr/include/igraph/igraph.h includes igraph_error.h where igraph_strerror is defined.

I can force it to compile either by editing the Makefile of by editing include/Makefile.config after attempting to compile it but in this case it obiously won't be linked against libigraph.

Output from make:

In file included from src/netcomplexity.cc:12:0:
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘virtual const char ecolab::IGraphError::what() const’:
/home/think/sources/ecolab.5.D26/include/igraph.h:27:32: error: ‘igraph_strerror’ was not declared in this scope
{return igraph_strerror(err);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: At global scope:
/home/think/sources/ecolab.5.D26/include/igraph.h:31:3: error: expected class-name before ‘{’ token
{
^
/home/think/sources/ecolab.5.D26/include/igraph.h:63:13: error: ‘igraph_t’ does not name a type
const igraph_t
g;
^
/home/think/sources/ecolab.5.D26/include/igraph.h:64:7: error: ‘igraph_eit_t’ does not name a type
igraph_eit_t it;
^
/home/think/sources/ecolab.5.D26/include/igraph.h:67:28: error: ‘igraph_t’ does not name a type
const_iterator(const igraph_t& graph, const igraph_es_t& es):
^
/home/think/sources/ecolab.5.D26/include/igraph.h:67:51: error: ‘igraph_es_t’ does not name a type
const_iterator(const igraph_t& graph, const igraph_es_t& es):
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In constructor ‘ecolab::IGraph::IGraph(unsigned int, bool)’:
/home/think/sources/ecolab.5.D26/include/igraph.h:37:40: error: ‘igraph_empty’ was not declared in this scope
{igraph_empty(this, nodes, directed);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In copy constructor ‘ecolab::IGraph::IGraph(const ecolab::IGraph&)’:
/home/think/sources/ecolab.5.D26/include/igraph.h:38:49: error: ‘igraph_copy’ was not declared in this scope
IGraph(const IGraph& x) {igraph_copy(this,&x);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In constructor ‘ecolab::IGraph::IGraph(const ecolab::Graph&)’:
/home/think/sources/ecolab.5.D26/include/igraph.h:40:49: error: ‘igraph_empty’ was not declared in this scope
igraph_empty(this, x.nodes(), x.directed());
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In destructor ‘ecolab::IGraph::~IGraph()’:
/home/think/sources/ecolab.5.D26/include/igraph.h:45:31: error: ‘igraph_destroy’ was not declared in this scope
try {igraph_destroy(this);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘const ecolab::IGraph& ecolab::IGraph::operator=(const ecolab::IGraph&)’:
/home/think/sources/ecolab.5.D26/include/igraph.h:54:25: error: ‘igraph_copy’ was not declared in this scope
{igraph_copy(this,&x); return this;}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In constructor ‘ecolab::IGraph::const_iterator::const_iterator(const int&, const int&)’:
/home/think/sources/ecolab.5.D26/include/igraph.h:68:9: error: class ‘ecolab::IGraph::const_iterator’ does not have any field named ‘g’
g(&graph) {igraph_eit_create(g,es,&it);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h:68:38: error: ‘g’ was not declared in this scope
g(&graph) {igraph_eit_create(g,es,&it);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h:68:44: error: ‘it’ was not declared in this scope
g(&graph) {igraph_eit_create(g,es,&it);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h:68:46: error: ‘igraph_eit_create’ was not declared in this scope
g(&graph) {igraph_eit_create(g,es,&it);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In destructor ‘ecolab::IGraph::const_iterator::~const_iterator()’:
/home/think/sources/ecolab.5.D26/include/igraph.h:69:46: error: ‘it’ was not declared in this scope
~const_iterator() {igraph_eit_destroy(&it);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h:69:48: error: ‘igraph_eit_destroy’ was not declared in this scope
~const_iterator() {igraph_eit_destroy(&it);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘bool ecolab::IGraph::const_iterator::operator==(const ecolab::IGraph::const_iterator&) const’:
/home/think/sources/ecolab.5.D26/include/igraph.h:72:17: error: ‘g’ was not declared in this scope
return (g==x.g &&
^
/home/think/sources/ecolab.5.D26/include/igraph.h:72:22: error: ‘const class ecolab::IGraph::const_iterator’ has no member named ‘g’
return (g==x.g &&
^
/home/think/sources/ecolab.5.D26/include/igraph.h:73:32: error: ‘it’ was not declared in this scope
IGRAPH_EIT_END(it) && IGRAPH_EIT_END(x.it)) ||
^
/home/think/sources/ecolab.5.D26/include/igraph.h:73:34: error: ‘IGRAPH_EIT_END’ was not declared in this scope
IGRAPH_EIT_END(it) && IGRAPH_EIT_END(x.it)) ||
^
/home/think/sources/ecolab.5.D26/include/igraph.h:73:56: error: ‘const class ecolab::IGraph::const_iterator’ has no member named ‘it’
IGRAPH_EIT_END(it) && IGRAPH_EIT_END(x.it)) ||
^
/home/think/sources/ecolab.5.D26/include/igraph.h:74:53: error: ‘const class ecolab::IGraph::const_iterator’ has no member named ‘it’
(!IGRAPH_EIT_END(it) && !IGRAPH_EIT_END(x.it) && operator
()==x);
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘ecolab::Edge ecolab::IGraph::const_iterator::operator
() const’:
/home/think/sources/ecolab.5.D26/include/igraph.h:78:9: error: ‘igraph_integer_t’ was not declared in this scope
igraph_integer_t from, to;
^
/home/think/sources/ecolab.5.D26/include/igraph.h:79:21: error: ‘g’ was not declared in this scope
igraph_edge(g, IGRAPH_EIT_GET(it), &from, &to);
^
/home/think/sources/ecolab.5.D26/include/igraph.h:79:39: error: ‘it’ was not declared in this scope
igraph_edge(g, IGRAPH_EIT_GET(it), &from, &to);
^
/home/think/sources/ecolab.5.D26/include/igraph.h:79:41: error: ‘IGRAPH_EIT_GET’ was not declared in this scope
igraph_edge(g, IGRAPH_EIT_GET(it), &from, &to);
^
/home/think/sources/ecolab.5.D26/include/igraph.h:79:45: error: ‘from’ was not declared in this scope
igraph_edge(g, IGRAPH_EIT_GET(it), &from, &to);
^
/home/think/sources/ecolab.5.D26/include/igraph.h:79:52: error: ‘to’ was not declared in this scope
igraph_edge(g, IGRAPH_EIT_GET(it), &from, &to);
^
/home/think/sources/ecolab.5.D26/include/igraph.h:79:54: error: ‘igraph_edge’ was not declared in this scope
igraph_edge(g, IGRAPH_EIT_GET(it), &from, &to);
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘ecolab::IGraph::const_iterator& ecolab::IGraph::const_iterator::operator++()’:
/home/think/sources/ecolab.5.D26/include/igraph.h:88:25: error: ‘it’ was not declared in this scope
IGRAPH_EIT_NEXT(it);
^
/home/think/sources/ecolab.5.D26/include/igraph.h:88:27: error: ‘IGRAPH_EIT_NEXT’ was not declared in this scope
IGRAPH_EIT_NEXT(it);
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘ecolab::IGraph::const_iterator ecolab::IGraph::begin() const’:
/home/think/sources/ecolab.5.D26/include/igraph.h:95:7: error: ‘igraph_es_t’ was not declared in this scope
igraph_es_t es;
^
/home/think/sources/ecolab.5.D26/include/igraph.h:96:22: error: ‘es’ was not declared in this scope
igraph_es_all(&es,IGRAPH_EDGEORDER_ID); //select all edges
^
/home/think/sources/ecolab.5.D26/include/igraph.h:96:25: error: ‘IGRAPH_EDGEORDER_ID’ was not declared in this scope
igraph_es_all(&es,IGRAPH_EDGEORDER_ID); //select all edges
^
/home/think/sources/ecolab.5.D26/include/igraph.h:96:44: error: ‘igraph_es_all’ was not declared in this scope
igraph_es_all(&es,IGRAPH_EDGEORDER_ID); //select all edges
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘ecolab::IGraph::const_iterator ecolab::IGraph::end() const’:
/home/think/sources/ecolab.5.D26/include/igraph.h:103:7: error: ‘igraph_es_t’ was not declared in this scope
igraph_es_t es;
^
/home/think/sources/ecolab.5.D26/include/igraph.h:104:23: error: ‘es’ was not declared in this scope
igraph_es_none(&es); //select no edges
^
/home/think/sources/ecolab.5.D26/include/igraph.h:104:25: error: ‘igraph_es_none’ was not declared in this scope
igraph_es_none(&es); //select no edges
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘unsigned int ecolab::IGraph::nodes() const’:
/home/think/sources/ecolab.5.D26/include/igraph.h:108:54: error: ‘igraph_vcount’ was not declared in this scope
unsigned nodes() const {return igraph_vcount(this);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘unsigned int ecolab::IGraph::links() const’:
/home/think/sources/ecolab.5.D26/include/igraph.h:109:54: error: ‘igraph_ecount’ was not declared in this scope
unsigned links() const {return igraph_ecount(this);}
^
/home/think/sources/ecolab.5.D26/include/igraph.h: In member function ‘void ecolab::IGraph::push_back(const ecolab::Edge&)’:
/home/think/sources/ecolab.5.D26/include/igraph.h:113:52: error: ‘igraph_add_vertices’ was not declared in this scope
if (n<maxN) igraph_add_vertices(this,maxN-n,0);="" ensure="" enough="" nodes="" ^="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:114:51:="" error:="" ‘igraph_add_edge’="" was="" not="" declared="" in="" this="" scope="" igraph_add_edge(this,="" e.source(),="" e.target());="" ^="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:="" In="" member="" function="" ‘bool="" ecolab::IGraph::contains(const="" ecolab::Edge&)="" const’:="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:119:9:="" error:="" ‘igraph_integer_t’="" was="" not="" declared="" in="" this="" scope="" igraph_integer_t="" eid;="" ^="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:120:30:="" error:="" ‘eid’="" was="" not="" declared="" in="" this="" scope="" igraph_get_eid(this,&eid,e.source(),e.target(),true);="" ^="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:120:60:="" error:="" ‘igraph_get_eid’="" was="" not="" declared="" in="" this="" scope="" igraph_get_eid(this,&eid,e.source(),e.target(),true);="" ^="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:="" In="" member="" function="" ‘bool="" ecolab::IGraph::directed()="" const’:="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:126:58:="" error:="" ‘igraph_is_directed’="" was="" not="" declared="" in="" this="" scope="" bool="" directed()="" const="" {return="" igraph_is_directed(this);}="" ^="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:="" In="" member="" function="" ‘void="" ecolab::IGraph::clear(unsigned="" int)’:="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:130:26:="" error:="" ‘igraph_destroy’="" was="" not="" declared="" in="" this="" scope="" igraph_destroy(this);="" ^="" home="" think="" sources="" ecolab.5.D26="" include="" igraph.h:131:34:="" error:="" ‘igraph_empty’="" was="" not="" declared="" in="" this="" scope="" igraph_empty(this,nodes,dir);="" ^="" gcc="" -c="" -fPIC="" -I.="" -I="" home="" think="" sources="" ecolab.5.D26="" include="" -DHASH_TCL_hash="" -DHAVE_LONGLONG="" -DTR1="" -I="" home="" think="" sources="" ecolab.5.D26="" include="" -I="" home="" think="" usr="" include="" -I="" usr="" local="" include="" -I="" opt="" local="" include="" -I="" usr="" X11R6="" include="" -DGNUSL="" -DZLIB="" -DXDR_PACK="" -DREADLINE="" -DIGRAPH="" -DCAIRO="" -I="" usr="" include="" cairo="" -I="" usr="" include="" glib-2.0="" -I="" usr="" lib="" x86_64-linux-gnu="" glib-2.0="" include="" -I="" usr="" include="" pixman-1="" -I="" usr="" include="" freetype2="" -I="" usr="" include="" libpng12="" -DCONTIGUOUS="" -DTK="" -I="" usr="" include="" tcl8.6="" -I="" usr="" include="" tcl8.6="" -DECOLAB_LIB="\\"/home/think/sources/ecolab.5.D26/include\\"" -DNDEBUG="" -I="" home="" think="" sources="" ecolab.5.D26="" include="" -DPANGO="" -pthread="" -I="" usr="" include="" pango-1.0="" -I="" usr="" include="" cairo="" -I="" usr="" include="" glib-2.0="" -I="" usr="" lib="" x86_64-linux-gnu="" glib-2.0="" include="" -I="" usr="" include="" pixman-1="" -I="" usr="" include="" freetype2="" -I="" usr="" include="" libpng12="" -UECOLAB_LIB="" -DINSTALLED_ECOLAB_LIB="\\"/home/think/usr/ecolab/include\\"" -O3="" -o="" src="" nautinv.o="" src="" nautinv.c="" src="" netcomplexity.cc:="" In="" function="" ‘double="" ecolab::igraph_lnomega(const="" ecolab::DiGraph&,="" int)’:="" src="" netcomplexity.cc:315:5:="" error:="" ‘igraph_bliss_sh_t’="" was="" not="" declared="" in="" this="" scope="" igraph_bliss_sh_t="" sh(static_cast<igraph_bliss_sh_t="">(method));
^
src/netcomplexity.cc:316:5: error: ‘igraph_bliss_info_t’ was not declared in this scope
igraph_bliss_info_t ret;
^
src/netcomplexity.cc:317:30: error: ‘sh’ was not declared in this scope
igraph_automorphisms(&ig,sh,&ret);
^
src/netcomplexity.cc:317:34: error: ‘ret’ was not declared in this scope
igraph_automorphisms(&ig,sh,&ret);
^
src/netcomplexity.cc:317:37: error: ‘igraph_automorphisms’ was not declared in this scope
igraph_automorphisms(&ig,sh,&ret);
^
include/Makefile:544: recipe for target 'src/netcomplexity.o' failed
make[1]: [src/netcomplexity.o] Error 1
make[1]:
Waiting for unfinished jobs....
make[1]: wait: No child processes. Stop.
Makefile:102: recipe for target 'ecolab-libs' failed
make:
[ecolab-libs] Error 2

Discussion

  • High Performance Coder

    It would appear that ecolab is built against igraph-0.5.4, and things
    have changed in the interim.

    The thing to do would be to update EcoLab to build against the latest igraph.

    As a workaround, specify IGRAPH= on the make command line.

    Cheers

    --


    Prof Russell Standish Phone 0425 253119 (mobile)
    Principal, High Performance Coders
    Visiting Professor of Mathematics hpcoder@hpcoders.com.au
    University of New South Wales http://www.hpcoders.com.au


     
  • Bernard Hurley

    Bernard Hurley - 2015-07-28

    Thanks, I found igraph-0.5.4 in the old Debian Wheezy repository and have downgraded to it. It doesn't seem to have broken anything and ecolab compiles OK now.

     
  • High Performance Coder

    Fixed now. It works with latest igraph, and with the original 0.5.4, but maybe not in between versions.

     
  • High Performance Coder

    • status: open --> closed
     

Anonymous
Anonymous

Add attachments
Cancel