#288 example1 needs boost

trunk
closed-fixed
G Biggs
player (137)
5
2009-07-12
2009-06-28
No

For a first time I'm installing Player on system with C++ compiler (with all STL headers) and no boost installed. What I've found is this:
Scanning dependencies of target example1
[ 93%] Building CXX object examples/libplayerc++/CMakeFiles/example1.dir/example1.o
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:2:28: error: boost/signal.hpp: No such file or directory
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:3:26: error: boost/bind.hpp: No such file or directory
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc: In function 'int main(int, char**)':
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:72: error: 'bind' is not a member of 'boost'
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:78: error: 'bind' is not a member of 'boost'
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:78: error: 'ref' is not a member of 'boost'
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:79: error: 'bind' is not a member of 'boost'
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:79: error: 'ref' is not a member of 'boost'
/root/psg22/src/player-20090626/examples/libplayerc++/example1.cc:105: error: 'bind' is not a member of 'boost'
make[2]: *** [examples/libplayerc++/CMakeFiles/example1.dir/example1.o] Error 1
make[1]: *** [examples/libplayerc++/CMakeFiles/example1.dir/all] Error 2

example1 assumes that if C++ is installed, boost is installed too, which is not always the truth.

Discussion

  • Paul Osmialowski

    • labels: --> player
    • milestone: --> trunk
    • assigned_to: nobody --> gbiggs
     
  • G Biggs

    G Biggs - 2009-07-02

    The relevant C++ examples already check for the presence of Boost before building. I would say the source of this problem lies elsewhere. The best place to start looking is to check why USE_BOOST_THREAD and USE_BOOST_SIGNALS are set.

     
  • Paul Osmialowski

    It is very strange since build/client_libs/libplayerc++/playerc++config.h seems to be generated properly:
    #ifndef __PLAYER_CPP_CONFIG_H__
    #define __PLAYER_CPP_CONFIG_H__

    /* #undef HAVE_BOOST_THREAD */
    /* #undef HAVE_BOOST_SIGNALS */

    #if defined (HAVE_BOOST_THREAD)
    #define _POSIX_PTHREAD_SEMANTICS
    #if !defined(_REENTRANT)
    #define _REENTRANT
    #endif
    #endif

    #endif

    Then CMakeLists.txt in sources looks reasonable:
    IF (BUILD_PLAYERCC_BOOST)
    IF (USE_BOOST_THREAD OR USE_BOOST_SIGNALS)
    PLAYERCPP_ADD_EXAMPLE (example1 example1.cc)
    PLAYERCPP_ADD_EXAMPLE (example3 example3.cc)
    PLAYERCPP_ADD_EXAMPLE (goto goto.cc)
    PLAYERCPP_ADD_EXAMPLE (speech_cpp_client speech_cpp_client.cc)
    INSTALL (FILES ${exampleBoostSrcs} DESTINATION share/${PROJECT_NAME_LOWER}/examples/libplayerc++)
    ENDIF (USE_BOOST_THREAD OR USE_BOOST_SIGNALS)

    IF (USE_BOOST_SIGNALS)
    PLAYERCPP_ADD_EXAMPLE (example2 example2.cc)
    INSTALL (FILES ${exampleBoostSigSrcs} DESTINATION share/${PROJECT_NAME_LOWER}/examples/libplayerc++)
    ENDIF (USE_BOOST_SIGNALS)
    ENDIF (BUILD_PLAYERCC_BOOST)

    Where else should I check?

     
  • Paul Osmialowski

    fixed by patch 2820330

     
  • G Biggs

    G Biggs - 2009-07-12

    I actually ran into this myself doing some Windows work a week ago, and fixed it, but wasn't able to check it in until tonight. It was the use of incorrect variables, so it was a simple fix. Thanks for the patch, but it's not needed.

     
  • G Biggs

    G Biggs - 2009-07-12
    • status: open --> closed-fixed
     
  • G Biggs

    G Biggs - 2009-07-12

    Fixed in CVS HEAD. Thanks very much for the report.

     

Log in to post a comment.