[C++-sig] [C++-Sig] Py++& GCCXML -- Many levels of compilation errors when compiling code that uses Boost, Microsoft Visual C++ headers, Python API, etc...

Lawrence Spector Lawrence.Spector at CanfieldSci.com
Mon Jul 16 16:43:22 CEST 2007


I'm using Visual Studio 2005 (8).  I've spent a significant amount of time trying to get Py++ working, and while I've made progress, this one has had me at its mercy.  I've spent days trying to stub out what GCCXML complains about, but each time I stub out a file, I get more errors in the next one and it just goes down the chain.

Here's what I've done to demonstrate.  There's a sample cpp file, for demonstration, called TestPy++.cpp.  This was processed using pyplusplus_gui.pyw.  The code is as follows:

#include <iostream>
#include <boost/python.hpp>

int main()
{
        boost::python::object obj;

        return 0;
}

Extremely basic, so that all's that happening is just creating a new object, using the Boost.Python library and everything that includes.

I set my include paths to boost and the Python API's include directory.  Here's the output:

Error occured during code generation process!
Error:
Error occured while running GCC-XML: In file included from D:/3rdparty/boost_1_34_0/boost/python/type_id.hpp:14,
                 from D:/3rdparty/boost_1_34_0/boost/python/instance_holder.hpp:11,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/pointer_holder.hpp:14,
                 from D:/3rdparty/boost_1_34_0/boost/python/to_python_indirect.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/arg_to_python.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/call.hpp:15,
                 from D:/3rdparty/boost_1_34_0/boost/python/object_core.hpp:12,
                 from D:/3rdparty/boost_1_34_0/boost/python/args.hpp:25,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:11,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
In file included from D:/3rdparty/boost_1_34_0/boost/python/object/forward.hpp:20,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/pointer_holder.hpp:16,
                 from D:/3rdparty/boost_1_34_0/boost/python/to_python_indirect.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/arg_to_python.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/call.hpp:15,
                 from D:/3rdparty/boost_1_34_0/boost/python/object_core.hpp:12,
                 from D:/3rdparty/boost_1_34_0/boost/python/args.hpp:25,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:11,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/mpl/or.hpp:33:13: operator "defined" requires an identifier
D:/3rdparty/boost_1_34_0/boost/mpl/or.hpp:33:13: ("or" is an alternative token for "||" in C++)
D:/3rdparty/boost_1_34_0/boost/mpl/or.hpp:33:15: missing '(' in expression
D:/3rdparty/boost_1_34_0/boost/mpl/or.hpp:44:13: operator "defined" requires an identifier
D:/3rdparty/boost_1_34_0/boost/mpl/or.hpp:44:13: ("or" is an alternative token for "||" in C++)
D:/3rdparty/boost_1_34_0/boost/mpl/or.hpp:44:15: missing '(' in expression
In file included from D:/3rdparty/boost_1_34_0/boost/type_traits/type_with_alignment.hpp:19,
                 from D:/3rdparty/boost_1_34_0/boost/type_traits/alignment_traits.hpp:13,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/instance.hpp:9,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/make_instance.hpp:9,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/make_ptr_instance.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/to_python_indirect.hpp:11,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/arg_to_python.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/call.hpp:15,
                 from D:/3rdparty/boost_1_34_0/boost/python/object_core.hpp:12,
                 from D:/3rdparty/boost_1_34_0/boost/python/args.hpp:25,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:11,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
In file included from D:/3rdparty/boost_1_34_0/boost/python/converter/to_python_function_type.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/registry.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/registered.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/make_instance.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/make_ptr_instance.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/to_python_indirect.hpp:11,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/arg_to_python.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/call.hpp:15,
                 from D:/3rdparty/boost_1_34_0/boost/python/object_core.hpp:12,
                 from D:/3rdparty/boost_1_34_0/boost/python/args.hpp:25,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:11,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
In file included from D:/3rdparty/boost_1_34_0/boost/python/converter/rvalue_from_python_data.hpp:11,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/registry.hpp:9,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/registered.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/make_instance.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/make_ptr_instance.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/to_python_indirect.hpp:11,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/arg_to_python.hpp:10,
                 from D:/3rdparty/boost_1_34_0/boost/python/call.hpp:15,
                 from D:/3rdparty/boost_1_34_0/boost/python/object_core.hpp:12,
                 from D:/3rdparty/boost_1_34_0/boost/python/args.hpp:25,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:11,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
In file included from D:/3rdparty/boost_1_34_0/boost/detail/indirect_traits.hpp:25,
                 from D:/3rdparty/boost_1_34_0/boost/python/detail/indirect_traits.hpp:7,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/object_manager.hpp:13,
                 from D:/3rdparty/boost_1_34_0/boost/python/to_python_value.hpp:16,
                 from D:/3rdparty/boost_1_34_0/boost/python/detail/invoke.hpp:21,
                 from D:/3rdparty/boost_1_34_0/boost/python/detail/caller.hpp:14,
                 from D:/3rdparty/boost_1_34_0/boost/python/object/function_handle.hpp:8,
                 from D:/3rdparty/boost_1_34_0/boost/python/converter/arg_to_python.hpp:19,
                 from D:/3rdparty/boost_1_34_0/boost/python/call.hpp:15,
                 from D:/3rdparty/boost_1_34_0/boost/python/object_core.hpp:12,
                 from D:/3rdparty/boost_1_34_0/boost/python/args.hpp:25,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:11,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/mpl/and.hpp:32:13: operator "defined" requires an identifier
D:/3rdparty/boost_1_34_0/boost/mpl/and.hpp:32:13: ("and" is an alternative token for "&&" in C++)
D:/3rdparty/boost_1_34_0/boost/mpl/and.hpp:32:16: missing '(' in expression
D:/3rdparty/boost_1_34_0/boost/mpl/and.hpp:43:13: operator "defined" requires an identifier
D:/3rdparty/boost_1_34_0/boost/mpl/and.hpp:43:13: ("and" is an alternative token for "&&" in C++)
D:/3rdparty/boost_1_34_0/boost/mpl/and.hpp:43:16: missing '(' in expression
In file included from D:/3rdparty/boost_1_34_0/boost/tuple/tuple.hpp:24,
                 from D:/3rdparty/boost_1_34_0/boost/python/detail/def_helper.hpp:18,
                 from D:/3rdparty/boost_1_34_0/boost/python/class.hpp:29,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:18,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
In file included from D:/3rdparty/boost_1_34_0/boost/type_traits/is_abstract.hpp:51,
                 from D:/3rdparty/boost_1_34_0/boost/type_traits.hpp:30,
                 from D:/3rdparty/boost_1_34_0/boost/python/detail/defaults_def.hpp:15,
                 from D:/3rdparty/boost_1_34_0/boost/python/overloads.hpp:11,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:52,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
In file included from D:/3rdparty/boost_1_34_0/boost/python/detail/defaults_def.hpp:18,
                 from D:/3rdparty/boost_1_34_0/boost/python/overloads.hpp:11,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:52,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
In file included from D:/3rdparty/boost_1_34_0/boost/python/return_arg.hpp:16,
                 from D:/3rdparty/boost_1_34_0/boost/python.hpp:58,
                 from C:/Work/Py++-Test/TestPy++.cpp:2:
D:/3rdparty/boost_1_34_0/boost/static_assert.hpp:14:1: unterminated #ifndef
D:/3rdparty/boost_1_34_0/boost/python/object_core.hpp:285: sorry, unimplemented: call_expr
   cannot be mangled due to a defect in the C++ ABI

Any tips on how to resolve this?  Like I said, stubbing out headers just gets me into a deeper and deeper hole where I'm basically trying to patch every header file just to convince GCCXML it compiles, so it will actually generate something.

Thanks,

Lawrence



More information about the Cplusplus-sig mailing list