Boost logo

Boost :

From: Christopher Sewell (chrissewell_at_[hidden])
Date: 2002-06-03 12:31:35

I recently downloaded the boost_all.tar.gz file and tried to execute an
example program from the graph library documentation. (I'm including the
code at the bottom of this message, but I don't think it is the problem.) I
am using gcc 3.1 in the console window with Red Hat, using the command

  gcc -I ~/boost_1_28_0/

I get the error:

/tmp/ccIJ6fE7.o: In function `__static_initialization_and_destruction_0(int,
/tmp/ccIJ6fE7.o(.text+0x3e9): undefined reference to
/tmp/ccIJ6fE7.o(.text+0x404): undefined reference to
/tmp/ccIJ6fE7.o: In function
boost::vecS, boost::vecS, boost::bidirectionalS, boost::no_property,
roperty, boost::no_property, boost::listS>, boost::vecS, boost::vecS,
irectionalS, boost::no_property, boost::no_property, boost::no_property,

and so on for about 100 lines.

If I run a program with the same includes as the example program but no code
(main just returns 0), I get the error:

/tmp/ccFgFVaL.o: In function `__static_initialization_and_destruction_0(int,
/tmp/ccFgFVaL.o(.text+0x35): undefined reference to
/tmp/ccFgFVaL.o(.text+0x50): undefined reference to
/tmp/ccFgFVaL.o(.eh_frame+0x11): undefined reference to
collect2: ld returned 1 exit status

I also tried building the libraries with bjam, although I don't think that
is necessary for the graph library, but it didn't make any difference. I'm
not very experienced with building things in this environment, so any help
would be much appreciated.


Code of the example program:

  #include <iostream> // for std::cout
  #include <utility> // for std::pair
  #include <algorithm> // for std::for_each
  #include <boost/graph/graph_traits.hpp>
  #include <boost/graph/adjacency_list.hpp>
  #include <boost/graph/dijkstra_shortest_paths.hpp>

  using namespace boost;

  int main(int,char*[])
    typedef std::pair<int, int> E;
    const int num_edges = 11;
    // writing out the edges in the graph
    E edge_array[num_edges] = { E(0,1), E(0,2), E(0,3), E(0,4),
                                E(2,0), E(3,0), E(2,4), E(3,1),
                                E(3,4), E(4,0), E(4,1) };
    const int num_vertices = 5;

    // create a typedef for the Graph type
    typedef adjacency_list<vecS, vecS, bidirectionalS> Graph;

    // declare a graph object
    Graph g(num_vertices);

    // add the edges to the graph object
    for (int i = 0; i < num_edges; ++i)
      add_edge(edge_array[i].first, edge_array[i].second, g);

    return 0;

Get your FREE download of MSN Explorer at

Boost list run by bdawes at, gregod at, cpdaniel at, john at