Menu

#5 Compilation Error (Ibex AMD64)

SVN
open
5
2008-11-04
2008-11-04
No

Hello Tim,

Here is my current compilation error using the latest SVN revision (268) as you requested:

-------------------

[ 57%] Building CXX object libGizmod/CMakeFiles/Gizmod.dir/GizmoEventCPUUsage.o
In file included from /home/bk/bin/gizmod/gizmod3/libGizmod/GizmoEventCPUUsage.hpp:43,
from /home/bk/bin/gizmod/gizmod3/libGizmod/GizmoEventCPUUsage.cpp:29:
/usr/include/boost/serialization/vector.hpp:185: error: redefinition of ‘struct boost::serialization::implementation_level<std::vector<long int, std::allocator<long int> > >’
/usr/include/boost/serialization/vector.hpp:185: error: previous definition of ‘struct boost::serialization::implementation_level<std::vector<long int, std::allocator<long int> > >’
/usr/include/boost/serialization/vector.hpp:185: error: redefinition of ‘struct boost::serialization::implementation_level<std::vector<long unsigned int, std::allocator<long unsigned int> > >’
/usr/include/boost/serialization/vector.hpp:185: error: previous definition of ‘struct boost::serialization::implementation_level<std::vector<long unsigned int, std::allocator<long unsigned int> > >’
make[2]: *** [libGizmod/CMakeFiles/Gizmod.dir/GizmoEventCPUUsage.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [libGizmod/CMakeFiles/Gizmod.dir/all] Error 2
make: *** [all] Error 2

-------------------

Let me know if there's anything else that you would like me to try!

Discussion

  • Christopher Peplin

    I can confirm this same bug. I followed Tim's request at Launchpad (https://bugs.launchpad.net/ubuntu/+source/gizmod/+bug/293082) to compile from SVN, and I received this same error. Looks like there's a problem with boost, as I've seen this same bug reported elsewhere (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502136).

     
  • Tim Burrell

    Tim Burrell - 2008-11-09

    Hrmm... what version of boost do you have installed?

     
  • Tim Burrell

    Tim Burrell - 2008-11-09

    Wow... I feel bad for you amd64 people. First a bug with boost 1.34, and now a new different bug with 1.35. This might suck but does anyone feel like trying 1.36 or 1.37?

    I found 1.36 ppa debs here: https://launchpad.net/~rjmyst3/+archive

    I think 1.37 would need be installed from source.

     
  • Christopher Peplin

    I was using boost 1.35, from the intrepid repo. I upgraded these packages from that PPA to go to boost 1.36:

    libboost-date-time1.36.0 libboost-system1.36.0 libboost-filesystem1.36.0 libboost-thread1.36.0 libboost-wave1.36.0 libboost-system-dev libboost-wave-dev libboost-filesystem-dev
    libboost-thread-dev libboost-test1.36.0 libboost-test-dev libboost-signals1.36.0 libboost-signals-dev libboost-serialization-dev libboost-regex1.36.0 libboost-regex-dev
    libboost-python1.36.0 libboost-python-dev libboost-program-options1.36.0 libboost-program-options-dev libboost-iostreams1.36.0 libboost-iostreams-dev libboost-graph-dev
    libboost-date-time-dev libboost-dev libboost-graph1.36.0 libboost-serialization1.36.0

    Now, compilation gets past the original bug in serialization...but stops here, in Gizmod code:

    [ 88%] Building CXX object gizmod/CMakeFiles/gizmod.dir/GizmoDaemon.o
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp: In member function ‘void GizmoDaemon::initGizmod()’:
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1262: error: reference to ‘exception’ is ambiguous
    /usr/include/boost/exception/exception.hpp:47: error: candidates are: class boost::exception
    /usr/include/c++/4.3/exception:57: error: class std::exception
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1262: error: expected type-specifier before ‘exception’
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1262: error: expected `)' before ‘&’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1262: error: expected `{' before ‘&’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1262: error: ‘e’ was not declared in this scope
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1262: error: expected `;' before ‘)’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp: In member function ‘bool GizmoDaemon::initialize(int, char**)’:
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1451: error: reference to ‘exception’ is ambiguous
    /usr/include/boost/exception/exception.hpp:47: error: candidates are: class boost::exception
    /usr/include/c++/4.3/exception:57: error: class std::exception
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1451: error: expected type-specifier before ‘exception’
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1451: error: expected `)' before ‘&’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1451: error: expected `{' before ‘&’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1451: error: ‘e’ was not declared in this scope
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1451: error: expected `;' before ‘)’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1463: error: reference to ‘exception’ is ambiguous
    /usr/include/boost/exception/exception.hpp:47: error: candidates are: class boost::exception
    /usr/include/c++/4.3/exception:57: error: class std::exception
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1463: error: expected type-specifier before ‘exception’
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1463: error: expected `)' before ‘&’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1463: error: expected `{' before ‘&’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1463: error: expected `;' before ‘)’ token
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp: In member function ‘void GizmoDaemon::loadUserScripts()’:
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:1567: error: ‘class boost::filesystem::basic_directory_entry<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >’ has no member named ‘leaf’
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp: In member function ‘void GizmoDaemon::registerInputEventDevices()’:
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:2191: error: ‘class boost::filesystem::basic_directory_entry<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >’ has no member named ‘leaf’
    /home/peplin/gizmod/gizmod3/gizmod/GizmoDaemon.cpp:2193: error: ‘class boost::filesystem::basic_directory_entry<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >’ has no member named ‘leaf’
    make[2]: *** [gizmod/CMakeFiles/gizmod.dir/GizmoDaemon.o] Error 1
    make[1]: *** [gizmod/CMakeFiles/gizmod.dir/all] Error 2
    make: *** [all] Error 2

    I made three changes to make rev268 compile with boost 1.36:
    Line 1262: exception to std::exception
    Line 1451: exception to std::exception
    Line 1463: exception to std::exception
    Line 1567: iter->leaf() to iter->path().leaf()
    Line 2191: iter->leaf() to iter->path().leaf()
    Line 2193: iter->leaf() to iter->path().leaf()

    It compiled, and Gizmod starts up fine when i run: $ gizmod/gizmod from the build/release folder.

     
  • Christopher Peplin

    Now that I look closer, I'm not sure if I was using boost 1.34 or 1.35 - both seem to be available in the Intrepid repo, with 1.34 being the default.

     
  • Tim Burrell

    Tim Burrell - 2008-11-09

    Thanks a bunch for looking into this peplin.

    SVN is now at r289, and now compiles only with boost >= 1.36.

    If it's okay with you Peplink, here's the link to the deb you posted on launchpad: http://launchpadlibrarian.net/19514290/gizmod-wboost136_amd64.deb

     
  • Tim Burrell

    Tim Burrell - 2008-11-09

    Sorry, Peplin I meant, not Peplink :).

     
  • Tim Burrell

    Tim Burrell - 2008-11-09

    Just to clarify:

    For AMD64 Ibex users Boost 1.36 is now needed, and an SVN compile. I'm still looking into getting a backport. Will update as I hear more info from Ubuntu MOTUs.

    Thanks everyone for helping in tracking this down!

     
  • Christopher Peplin

    For anyone trying that deb, you will need to create a symlink for libGizmod like this:

    $ sudo ln -s /usr/lib/libGizmod.so.3.4.0 /usr/lib/libGizmod.so.3

    Not sure what I did wrong there, but this will fix it.

     
  • Bernardo Kuri N.

    Upgrading to Jaunty x64 solved the issue for me. I'm finally able to use gizmod again!

     

Log in to post a comment.