Boost logo

Boost Users :

Subject: Re: [Boost-users] boost graph library with gcc 4.2 and later (Andrew Sutton)
From: Moti Freiman (freiman_at_[hidden])
Date: 2008-10-29 08:18:07


Hi,
Below is the details of my problem:

gcc version and system: g++ (Debian 4.3.1-9) 4.3.1

I tried to compile the graph example (boost/libs/graph/example/graph.cpp)
using the following command:
g++ -Wall -I /cs/phd/freiman/include/boost_1_36_0 graph.cpp -o graph

and got the following message about deprecated headers:
---------------------------------------- OUTPUT
-------------------------------------------------
In file included from /usr/include/c++/4.3/backward/hash_set:64,
                 from
/cs/phd/freiman/include/boost_1_36_0/boost/graph/adjacency_list.hpp:22,
                 from graph.cpp:15:
/usr/include/c++/4.3/backward/backward_warning.h:33:2: warning: #warning
This file includes at least one deprecated or antiquated header which may be
removed without further notice at a future date. Please use a non-deprecated
interface with equivalent functionality instead. For a listing of
replacement headers and interfaces, consult the file backward_warning.h. To
disable this warning use -Wno-deprecated.
---------------------------------------- END OF OUTPUT
--------------------------------------------------
The running of this file was o.k.

When I tried to compile the kolmogorov max-flow example
(boost/libs/graph/example/kolmogorov-eg.cpp) using the following command:

 g++ -Wall -I /cs/phd/freiman/include/boost_1_36_0 kolmogorov-eg.cpp -o
kolmogorov-eg

I got the following:
-------------------------------------- OUTPUT
------------------------------------------------------

In file included from /usr/include/c++/4.3/backward/hash_set:64,
                 from
/cs/phd/freiman/include/boost_1_36_0/boost/graph/adjacency_list.hpp:22,
                 from kolmogorov-eg.cpp:36:
/usr/include/c++/4.3/backward/backward_warning.h:33:2: warning: #warning
This file includes at least one deprecated or antiquated header which may be
removed without further notice at a future date. Please use a non-deprecated
interface with equivalent functionality instead. For a listing of
replacement headers and interfaces, consult the file backward_warning.h. To
disable this warning use -Wno-deprecated.
In file included from kolmogorov-eg.cpp:37:
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp: In
function 'int boost::read_dimacs_max_flow(Graph&, CapacityMap,
ReverseEdgeMap, typename boost::graph_traits<G>::vertex_descriptor&,
typename boost::graph_traits<G>::vertex_descriptor&, std::istream&)':
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:140: error:
there are no arguments to 'strcmp' that depend on a template parameter, so a
declaration of 'strcmp' must be available
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:140: error:
(if you use '-fpermissive', G++ will accept your code, but allowing the use
of an undeclared name is deprecated)
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp: In
function 'int boost::read_dimacs_max_flow(Graph&, CapacityMap,
ReverseEdgeMap, typename boost::graph_traits<G>::vertex_descriptor&,
typename boost::graph_traits<G>::vertex_descriptor&, std::istream&) [with
Graph = main()::Graph, CapacityMap =
boost::adj_list_edge_property_map<boost::directed_tag, long int, long int&,
unsigned int, boost::property<boost::edge_capacity_t, long int,
boost::property<boost::edge_residual_capacity_t, long int,
boost::property<boost::edge_reverse_t,
boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>,
boost::no_property> > >, boost::edge_capacity_t>, ReverseEdgeMap =
boost::adj_list_edge_property_map<boost::directed_tag,
boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>,
boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>&, unsigned
int, boost::property<boost::edge_capacity_t, long int,
boost::property<boost::edge_residual_capacity_t, long int,
boost::property<boost::edge_reverse_t,
boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>,
boost::no_property> > >, boost::edge_reverse_t>]':
kolmogorov-eg.cpp:93: instantiated from here
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:105:
warning: deprecated conversion from string constant to 'char*'
kolmogorov-eg.cpp:93: instantiated from here
/cs/phd/freiman/include/boost_1_36_0/boost/graph/read_dimacs.hpp:140: error:
'strcmp' was not declared in this scope
------------------------------------ END OF OUTPUT
------------------------------------------------

which has error due to the strcmp function in line 140 in the file:
read_dimacs.hpp
I added the required header file (string.h) and only the warnings remain.

When I tried to run this example using the following command:

kolmogorov-eg < max_flow.dat

I got a segmentation fault:

I tried to understand where the seg. fault came from using valgrind and it
runs without seg. fault but with many "invalid read" errors, that seems to
come from the file read_dimacs.hpp, line 118

Using the same code with WinXP and visual studio 2003, yields no problems.

Any idea?

Thanks,
Moti

> Date: Tue, 28 Oct 2008 18:50:48 -0400
> From: "Andrew Sutton" <andrew.n.sutton_at_[hidden]>
> Subject: Re: [Boost-users] boost graph library with gcc 4.2 and later
> To: boost-users_at_[hidden]
> Message-ID:
> <ab7a64130810281550p9237088u1baa08fdd9160e1a_at_[hidden]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> >
> > I'm a newbie to boost and have a storng interest in the graph algorithms
> in
> > boost.
> >
> I tried to run both kolmogorov and edmund-karp examples and got many
> > warnings due to deprecated conversions in the read_dimacs function
> > When I tried to run these examples I got segmentation faults.
> > Other simple program (from boost homepage) that I tried to compile and
> run,
> > run well.
> > Is there any known issue about using boost with gcc 4 and later?
> >
>
> You need to be more specific about the errors system that you're building
> for and the errors that you're getting. Which version of Boost? Which
> compiler (very specifically)? What are the warnings? Can you tell what's
> causing the error?
>
> Andrew Sutton
> andrew.n.sutton_at_[hidden]
>

-- 
__
Moti Freiman, Ph.D Student.
Medical Image Processing and Computer-Assisted Surgery Laboratory.
School of Computer Science and Engineering.
The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904, Israel
Phone: +(972)-2-658-5371 (laboratory)
WWW site: http://www.cs.huji.ac.il/~freiman


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net