Error in msvc in building inheritance.obj to build hello.pyd

Discussion in 'Python' started by AIM, Dec 12, 2004.

  1. AIM

    AIM Guest

    Error in msvc in building inheritance.obj to build hello.pyd

    Hello,

    I am trying to build the boost 1.31.0 sample extension hello.cpp.
    I can not compile the file inheritance.cpp because the two
    files containing some templates: adjacency_list.hpp and mem_fn.hpp can
    not compile.

    Does anyone have any solutions?
    Instead of Visual C++ 6.0 should I use a different compiler?
    Anyone have any success on any other compiler?

    Did anyone manage to build a hello.pyd?

    Thank you very much.
    Here is my script below (with embedded results).

    rem I have MSVC 6.0 Service Pack 5 on Windows 2000 Service Pack 3
    default installs on F:
    rem Python is located in F:\Python23
    rem Boost is located in W:\boost_1_31_0
    rem MSVC stlPort 4.6.2 installed, compiled and
    rem VC studio include dirs and libraries dirs configured to use it.

    rem build boost.jam (so I have a bjam.exe for all below)
    W:
    vcvars32.bat
    cd W:\boost_1_31_0\tools\build\jam_src
    rem below since I have multilple toolsets installed I will always be
    specific.
    ..\build.bat msvc
    rem result: 2 minutes later: NO WARN NO ERRORS
    dir W:\boost_1_31_0\tools\build\jam_src\bin.ntx86\*
    rem result: OK I have *jam*.exe executables: bjam.exe jam.exe
    mkjambase.exe yyacc.exe


    rem build boost (using boost.jam (bjam from above))
    W:
    vcvars32.bat
    set PYTHON_ROOT=F:\Python23
    set PYTHON_VERSION=2.3
    set PATH=%PATH%;W:\boost_1_31_0\tools\build\jam_src\bin.ntx86
    rem APPEND THE BJAM PATH ABOVE TO THE SYSTEM ENVRONMENT VARIABLE PATH
    cd W:\boost_1_31_0
    rem below since I have multilple toolsets installed I will always be
    specific.
    bjam "-sTOOLS=msvc" install


    rem about 90 minutes later ERROR RESULTS FOLLOW:
    <<< errors.txt contents below >>>

    cl /Zm800 -nologo -GX -c -DNDEBUG -DNDEBUG -DBOOST_PYTHON_DYNAMIC_LIB
    -DBOOST_PYTHON_SOURCE /Ogity /O2 /Gs /Ob2 /GX /GR /MD
    -I"bin\boost\libs\python\build" -I"W:\boost_1_31_0"
    -I"F:\Python23\include" -I"F:\Program Files\Microsoft Visual
    Studio\VC98\Include"
    -Fo"bin\boost\libs\python\build\boost_python.dll\msvc\release\inheritance.obj"
    -Tp"W:\boost_1_31_0\libs\python\build\../src/object/inheritance.cpp"

    rem error below results below ...

    F:\Program Files\Microsoft Visual Studio\VC98\Bin>cl /Zm800 -nologo
    -GX -c -DNDEBUG -DNDEBUG -DBOOST_PYTHON_DYNAMIC_LIB
    -DBOOST_PYTHON_SOURCE /Ogity /O2 /Gs /Ob2 /GX /GR /MD
    -I"bin\boost\libs\python\build" -I"W:\boost_1_31_0"
    -I"F:\Python23\include"
    -I"F:\Program Files\Microsoft Visual Studio\VC98\Include"
    -Fo"bin\boost\libs\python\build\boost_python.dll\msvc\release\inheritance.obj"
    -Tp"W:\boost_1_31_0\libs\python\build\../src/object/inheritance.cpp"
    inheritance.cpp
    W:\boost_1_31_0\boost/graph/detail/adjacency_list.hpp(1055) : error
    C2244: 'bidirectional_graph_helper_with_property<Config>::remove_edge'
    : unable to resolve function overload
    W:\boost_1_31_0\boost/graph/detail/adjacency_list.hpp(1057) : error
    C2954: template definitions cannot nest
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2039: 'dm' : is not a
    member of '_mfi'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2143: syntax error :
    missing ';' before '<'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2501: 'dm' : missing
    storage-class or type specifiers
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2059: syntax error : ';'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2059: syntax error : '<'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2653: 'T' : is not a
    class or namespace name
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2645: no qualified name
    for pointer to member (found ':: *')
    W:\boost_1_31_0\boost/mem_fn.hpp(320) : error C2143: syntax error :
    missing ';' before '}'
    W:\boost_1_31_0\boost/mem_fn.hpp(320) : fatal error C1506:
    unrecoverable block scoping error

    F:\Program Files\Microsoft Visual Studio\VC98\Bin>

    W:\boost_1_31_0\boost/graph/detail/adjacency_list.hpp(1055) : error
    C2244: 'bidirectional_graph_helper_with_property<Config>::remove_edge'
    : unable to resolve function overload
    W:\boost_1_31_0\boost/graph/detail/adjacency_list.hpp(1057) : error
    C2954: template definitions cannot nest


    rem the problem area in adjacency_list.hpp is here ...

    template <class Config>
    inline void

    bidirectional_graph_helper_with_property<Config>::remove_edge(typename
    Config::edge_descriptor e)
    {
    typedef typename Config::graph_type graph_type;
    graph_type& g = static_cast<graph_type&>(*this);
    boost::remove_edge(source(e, g), target(e, g), *this);
    }
    // O(E/V) or O(log(E/V))
    template <class EdgeOrIter, class Config>
    inline void
    remove_edge(EdgeOrIter e,
    bidirectional_graph_helper_with_property<Config>& g_)
    {
    g_.remove_edge(e);
    }


    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2039: 'dm' : is not a
    member of '_mfi'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2143: syntax error :
    missing ';' before '<'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2501: 'dm' : missing
    storage-class or type specifiers
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2059: syntax error : ';'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2059: syntax error : '<'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2653: 'T' : is not a
    class or namespace name
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2645: no qualified name
    for pointer to member (found ':: *')
    W:\boost_1_31_0\boost/mem_fn.hpp(320) : error C2143: syntax error :
    missing ';' before '}'
    W:\boost_1_31_0\boost/mem_fn.hpp(320) : fatal error C1506:
    unrecoverable block scoping error


    rem The problem area in mem_fn.hpp is here ...


    creating a template class at the end of mem_fn.hpp
    template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f)
    {
    return _mfi::dm<R, T>(f);
    }

    } // namespace boost





    rem build hello world
    W:
    vcvars32.bat
    set PYTHON_ROOT=F:\Python23
    set PYTHON_VERSION=2.3
    set PATH=%PATH%;W:\boost_1_31_0\tools\build\jam_src\bin.ntx86
    rem APPEND THE BJAM PATH ABOVE TO THE SYSTEM ENVRONMENT VARIABLE PATH
    cd W:\boost_1_31_0\libs\python\example\tutorial
    bjam -sTOOLS=msvc


    The results are as follows

    W:\boost_1_31_0\libs\python\example\tutorial>bjam -sTOOLS=msvc
    ....found 1978 targets...
    ....updating 7 targets...
    vc-C++
    ...\..\..\..\bin\boost\libs\python\build\boost_python.dll\msvc\debug\inheritance.obj
    inheritance.cpp
    W:\boost_1_31_0\boost/graph/detail/adjacency_list.hpp(1055) : error
    C2244: 'bidirectional_graph_helper_with_property<Config>::remove_edge'
    : unable to resolve function overload
    W:\boost_1_31_0\boost/graph/detail/adjacency_list.hpp(1057) : error
    C2954: template definitions cannot nest
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2039: 'dm' : is not a
    member of '_mfi'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2143: syntax error :
    missing ';' before '<'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2501: 'dm' : missing
    storage-class or type specifiers
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2059: syntax error : ';'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2059: syntax error : '<'
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2653: 'T' : is not a
    class or namespace name
    W:\boost_1_31_0\boost/mem_fn.hpp(315) : error C2645: no qualified name
    for pointer to member (found ':: *')
    W:\boost_1_31_0\boost/mem_fn.hpp(320) : error C2143: syntax error :
    missing ';' before '}'
    W:\boost_1_31_0\boost/mem_fn.hpp(320) : fatal error C1506:
    unrecoverable block scoping error


    "cl" /Zm800 -nologo -GX -c -DBOOST_PYTHON_DYNAMIC_LIB
    -DBOOST_PYTHON_SOURCE /Z7 /Od /Ob0 /GX /GR /MDd
    -I"..\..\..\..\bin\boost\libs\python\build" -I"W:\boost_1_31_0"
    -I"F:\Python23\include" -I"F:\PROGRA~1\MICROS~3\VC98\include"
    -Fo"..\..\..\..
    \bin\boost\libs\python\build\boost_python.dll\msvc\debug\inheritance.obj"
    -Tp"W:\boost_1_31_0\libs\python\build\../src/object/inheritance.cpp"

    ....failed vc-C++
    ...\..\..\..\bin\boost\libs\python\build\boost_python.dll\msvc\debug\inheritance.obj...
    ....skipped
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.CMD
    for lack of
    <@boost!libs!python!build\boost_python.dll\msvc\debug>inheritance.obj...
    ....skipped
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.dll
    for lack of
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.CMD...
    ....skipped
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.lib
    for lack of
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.CMD...
    ....skipped
    <@boost!libs!python!example!tutorial\hello.pyd\msvc\debug>hello.CMD for
    lack of
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.lib...
    ....skipped
    <@boost!libs!python!example!tutorial\hello.pyd\msvc\debug>hello.pyd for
    lack of
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.dll...
    ....skipped
    <@boost!libs!python!example!tutorial\hello.pyd\msvc\debug>hello.lib for
    lack of
    <@boost!libs!python!build\boost_python.dll\msvc\debug>boost_python.dll...
    ....failed updating 1 target...
    ....skipped 6 targets...

    W:\boost_1_31_0\libs\python\example\tutorial>dir hello*.*
    rem results: ALL hello.CMD hello.pyd hello.lib NOT FOUND
    Any Ideas about a possible solution?

    AIM
     
    AIM, Dec 12, 2004
    #1
    1. Advertisements

  2. AIM

    Donnie Leen Guest

    I use msvc 6.0 too, but my boost.python version is 1.32.0 , and i
    didn't get error to compile the hello.pyd with the msvc6 IDE, the
    hello demo from boost.python is compile with jam.
    would you try to use boost.python 1.32.0 if no compatible problem
     
    Donnie Leen, Dec 12, 2004
    #2
    1. Advertisements

  3. AIM

    AIM Guest

    Donne Leen,

    Thanks, thats a very good solution. I am glad to hear that the later
    solution works for you.

    I will try to get the 1.32.0 source Monday. I will try to compile
    again next week.

    Andre Mikulec
    AIM
     
    AIM, Dec 12, 2004
    #3
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.