Opened 18 years ago
Closed 17 years ago
#330 closed Bugs (Fixed)
Error in msvc in building inheritance.obj to build hello.pyd
Reported by: | andre_mikulec | Owned by: | david_abrahams |
---|---|---|---|
Milestone: | Component: | python USE GITHUB | |
Version: | None | Severity: | |
Keywords: | Cc: |
Description
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\rele ase\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\rele ase\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>::remov e_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.d ll\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.d ll\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 Andre_Mikulec@Hotmail.com
Note:
See TracTickets
for help on using tickets.