stixel_world building - fix of building error on debian6 enviroment

Issue #2 wontfix
Anonymous created an issue

Dear doppia team,

For (aa3b17e9b395) version:
The following extra steps need to build in debian6:

1, Add the following line in line 65 of CMakeLists.txt:
"${doppia_root}/src/stereo_matching/ground_plane"
if not, the plane3d.pb.h can not be finded.

2, Change the 301 line of ImagePlaneStixelsEstimator.cpp to the following line:
const boost::int16_t dy_value = std::abs(df_dy_mat.at<boost::int16_t>(row, column));
if not, the following compile error will be rised:
src/stereo_matching/stixels/ImagePlaneStixelsEstimator.cpp:301: instantiated from here
/usr/include/c++/4.4/complex:569: error: call of overloaded ‘abs(short int&)’ is ambigu

building enviroment: devian6, cmake2.8.2, gcc4.4.5.

Comments (7)

  1. Rodrigo Benenson repo owner

    Item 1 is fixed in 93f0e019e462; item 2 however is unclear what should be done.

    I am quite sure I wrote std::abs<boost::int16_t>(...) because otherwise I would have a similar error when using a different (more recent) version of GCC (I am currently using 4.7; but I would like the code to also compile fine with 4.4).

    Maybe we should add a ifdef that checks the GCC version ? (but that is quite ugly). Maybe boost::math::abs is a solution ?

  2. Rodrigo Benenson repo owner

    Item 1 was fixed. Since I do not know a good solution for item 2 and since it works fine with the most recent versions of GCC I will close this issue with "will not fix". If you have a suggestions for handling the std::abs<...>, please let me know.

  3. Log in to comment