-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Closed
Description
Ping @mdboom - this is since the CXX removal.
python -c "import matplotlib._path"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dlopen(/Users/pelson/dev/matplotlib/lib/matplotlib/_path.so, 2): Symbol not found: __ZNSs4_Rep20_S_empty_rep_storageE
Referenced from: /Users/pelson/dev/matplotlib/lib/matplotlib/_path.so
Expected in: dynamic lookup
The linker line with -undefined dynamic_lookup removed for _path.so looks like:
gcc -bundle -L/Users/pelson/miniconda/lib -arch x86_64 -arch x86_64 build/temp.macosx-10.5-x86_64-2.7/src/py_converters.o build/temp.macosx-10.5-x86_64-2.7/src/_path_wrapper.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_bezier_arc.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_curves.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_image_filters.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_trans_affine.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_vcgen_contour.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_vcgen_dash.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_vcgen_stroke.o build/temp.macosx-10.5-x86_64-2.7/extern/agg24-svn/src/agg_vpgen_segmentator.o -L/Users/pelson/miniconda/lib -L/Users/pelson/miniconda/lib -o build/lib.macosx-10.5-x86_64-2.7/matplotlib/_path.so
With an error:
Undefined symbols for architecture x86_64:
"_MPL_matplotlib_backends__backend_agg_ARRAY_API", referenced from:
_convert_path in py_converters.o
numpy::array_view<double const, 1>::set(_object*, bool) in py_converters.o
numpy::array_view<double const, 2>::set(_object*, bool) in py_converters.o
"_PyArg_ParseTuple", referenced from:
_convert_rgba in py_converters.o
_convert_dashes in py_converters.o
_convert_clippath in py_converters.o
_convert_sketch_params in py_converters.o
_convert_gcagg in py_converters.o
_convert_face in py_converters.o
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
...
"_PyArg_ParseTupleAndKeywords", referenced from:
Py_path_intersects_path(_object*, _object*, _object*) in _path_wrapper.o
"_PyCObject_AsVoidPtr", referenced from:
_init_path in _path_wrapper.o
"_PyCObject_Type", referenced from:
_init_path in _path_wrapper.o
"_PyErr_Clear", referenced from:
_convert_from_method in py_converters.o
_convert_from_attr in py_converters.o
_convert_rect in py_converters.o
_convert_gcagg in py_converters.o
_convert_offset_position in py_converters.o
"_PyErr_Format", referenced from:
convert_string_enum(_object*, char const*, char const**, int*, int*) in py_converters.o
_convert_dashes in py_converters.o
numpy::array_view<double const, 1>::set(_object*, bool) in py_converters.o
numpy::array_view<double const, 2>::set(_object*, bool) in py_converters.o
_init_path in _path_wrapper.o
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
...
"_PyErr_Occurred", referenced from:
_convert_double in py_converters.o
_convert_dashes in py_converters.o
_convert_path in py_converters.o
_convert_gcagg in py_converters.o
"_PyErr_Print", referenced from:
_init_path in _path_wrapper.o
"_PyErr_SetString", referenced from:
_convert_rect in py_converters.o
_convert_dashes in py_converters.o
_convert_trans_affine in py_converters.o
_convert_path in py_converters.o
_init_path in _path_wrapper.o
Py_update_path_extents(_object*, _object*, _object*) in _path_wrapper.o
"_PyExc_AttributeError", referenced from:
_init_path in _path_wrapper.o
"_PyExc_ImportError", referenced from:
_init_path in _path_wrapper.o
"_PyExc_MemoryError", referenced from:
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
Py_path_in_path(_object*, _object*, _object*) in _path_wrapper.o
...
"_PyExc_OverflowError", referenced from:
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
Py_path_in_path(_object*, _object*, _object*) in _path_wrapper.o
...
"_PyExc_RuntimeError", referenced from:
_init_path in _path_wrapper.o
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
...
"_PyExc_TypeError", referenced from:
convert_string_enum(_object*, char const*, char const**, int*, int*) in py_converters.o
_convert_dashes in py_converters.o
"_PyExc_ValueError", referenced from:
convert_string_enum(_object*, char const*, char const**, int*, int*) in py_converters.o
_convert_rect in py_converters.o
_convert_dashes in py_converters.o
_convert_trans_affine in py_converters.o
_convert_path in py_converters.o
numpy::array_view<double const, 1>::set(_object*, bool) in py_converters.o
numpy::array_view<double const, 2>::set(_object*, bool) in py_converters.o
...
"_PyFloat_AsDouble", referenced from:
_convert_double in py_converters.o
_convert_dashes in py_converters.o
_convert_path in py_converters.o
_convert_gcagg in py_converters.o
"_PyImport_ImportModule", referenced from:
_init_path in _path_wrapper.o
"_PyList_New", referenced from:
convert_polygon_vector(std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >&) in _path_wrapper.o
"_PyList_SetItem", referenced from:
convert_polygon_vector(std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >&) in _path_wrapper.o
"_PyLong_FromLong", referenced from:
Py_count_bboxes_overlapping_bbox(_object*, _object*, _object*) in _path_wrapper.o
"_PyMem_Free", referenced from:
void convert_to_svg<py::PathIterator>(py::PathIterator&, agg::trans_affine&, agg::rect_base<double>&, bool, int, char*, unsigned long*) in _path_wrapper.o
"_PyOS_double_to_string", referenced from:
void convert_to_svg<py::PathIterator>(py::PathIterator&, agg::trans_affine&, agg::rect_base<double>&, bool, int, char*, unsigned long*) in _path_wrapper.o
"_PyObject_CallMethod", referenced from:
_convert_from_method in py_converters.o
_convert_gcagg in py_converters.o
"_PyObject_GetAttrString", referenced from:
_convert_from_attr in py_converters.o
_convert_path in py_converters.o
_convert_gcagg in py_converters.o
_init_path in _path_wrapper.o
"_PyObject_HasAttrString", referenced from:
_convert_from_method in py_converters.o
_convert_from_attr in py_converters.o
_convert_gcagg in py_converters.o
"_PyObject_IsTrue", referenced from:
_convert_bool in py_converters.o
_convert_path in py_converters.o
_convert_snap in py_converters.o
_convert_gcagg in py_converters.o
Py_cleanup_path(_object*, _object*, _object*) in _path_wrapper.o
Py_convert_to_svg(_object*, _object*, _object*) in _path_wrapper.o
"_PySequence_Check", referenced from:
_convert_dashes in py_converters.o
_convert_dashes_vector in py_converters.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
"_PySequence_GetItem", referenced from:
_convert_dashes in py_converters.o
_convert_dashes_vector in py_converters.o
py::PathGenerator::operator()(unsigned long) in _path_wrapper.o
"_PySequence_Size", referenced from:
_convert_dashes in py_converters.o
_convert_dashes_vector in py_converters.o
_convert_face in py_converters.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
"_PyString_AsString", referenced from:
convert_string_enum(_object*, char const*, char const**, int*, int*) in py_converters.o
"_PyUnicodeUCS2_AsASCIIString", referenced from:
convert_string_enum(_object*, char const*, char const**, int*, int*) in py_converters.o
"_PyUnicodeUCS2_DecodeASCII", referenced from:
Py_convert_to_svg(_object*, _object*, _object*) in _path_wrapper.o
"_Py_BuildValue", referenced from:
Py_update_path_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_cleanup_path(_object*, _object*, _object*) in _path_wrapper.o
"_Py_InitModule4_64", referenced from:
_init_path in _path_wrapper.o
"__Py_NoneStruct", referenced from:
convert_string_enum(_object*, char const*, char const**, int*, int*) in py_converters.o
_convert_rect in py_converters.o
_convert_rgba in py_converters.o
_convert_dashes in py_converters.o
_convert_trans_affine in py_converters.o
_convert_path in py_converters.o
_convert_clippath in py_converters.o
...
"__Py_TrueStruct", referenced from:
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_path_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_path_intersects_path(_object*, _object*, _object*) in _path_wrapper.o
"__Py_ZeroStruct", referenced from:
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_path_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_path_intersects_path(_object*, _object*, _object*) in _path_wrapper.o
"std::string::_M_leak_hard()", referenced from:
Py_convert_to_svg(_object*, _object*, _object*) in _path_wrapper.o
"std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:
Py_convert_to_svg(_object*, _object*, _object*) in _path_wrapper.o
"std::string::_Rep::_S_empty_rep_storage", referenced from:
Py_convert_to_svg(_object*, _object*, _object*) in _path_wrapper.o
"std::string::reserve(unsigned long)", referenced from:
Py_convert_to_svg(_object*, _object*, _object*) in _path_wrapper.o
"std::logic_error::~logic_error()", referenced from:
std::domain_error::~domain_error() in py_converters.o
std::domain_error::~domain_error() in py_converters.o
std::domain_error::~domain_error() in py_converters.o
std::invalid_argument::~invalid_argument() in py_converters.o
std::invalid_argument::~invalid_argument() in py_converters.o
std::invalid_argument::~invalid_argument() in py_converters.o
std::length_error::~length_error() in py_converters.o
...
"std::runtime_error::~runtime_error()", referenced from:
std::range_error::~range_error() in py_converters.o
std::range_error::~range_error() in py_converters.o
std::range_error::~range_error() in py_converters.o
std::overflow_error::~overflow_error() in py_converters.o
std::overflow_error::~overflow_error() in py_converters.o
std::overflow_error::~overflow_error() in py_converters.o
std::underflow_error::~underflow_error() in py_converters.o
...
"std::bad_alloc::~bad_alloc()", referenced from:
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
Py_path_in_path(_object*, _object*, _object*) in _path_wrapper.o
...
"std::exception::~exception()", referenced from:
_convert_rect in py_converters.o
_convert_trans_affine in py_converters.o
py::exception::~exception() in py_converters.o
py::exception::~exception() in py_converters.o
py::exception::~exception() in _path_wrapper.o
py::exception::~exception() in _path_wrapper.o
"std::__throw_bad_alloc()", referenced from:
_convert_dashes_vector in py_converters.o
std::vector<Dashes, std::allocator<Dashes> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Dashes*, std::vector<Dashes, std::allocator<Dashes> > >, Dashes const&) in py_converters.o
std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::operator=(std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > > const&) in py_converters.o
std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<double, double>*, std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > > >, std::pair<double, double> const&) in py_converters.o
convert_polygon_vector(std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >&) in _path_wrapper.o
std::vector<double, std::allocator<double> >::_M_insert_aux(__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, double const&) in _path_wrapper.o
std::vector<XY, std::allocator<XY> >::_M_insert_aux(__gnu_cxx::__normal_iterator<XY*, std::vector<XY, std::allocator<XY> > >, XY const&) in _path_wrapper.o
...
"std::__throw_length_error(char const*)", referenced from:
std::vector<Dashes, std::allocator<Dashes> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Dashes*, std::vector<Dashes, std::allocator<Dashes> > >, Dashes const&) in py_converters.o
std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<double, double>*, std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > > >, std::pair<double, double> const&) in py_converters.o
std::vector<unsigned char, std::allocator<unsigned char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char const&) in _path_wrapper.o
std::vector<double, std::allocator<double> >::_M_insert_aux(__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, double const&) in _path_wrapper.o
std::vector<XY, std::allocator<XY> >::_M_insert_aux(__gnu_cxx::__normal_iterator<XY*, std::vector<XY, std::allocator<XY> > >, XY const&) in _path_wrapper.o
std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::vector<XY, std::allocator<XY> >*, std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > > >, std::vector<XY, std::allocator<XY> > const&) in _path_wrapper.o
std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::vector<double, std::allocator<double> >*, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > > >, std::vector<double, std::allocator<double> > const&) in _path_wrapper.o
...
"std::terminate()", referenced from:
___clang_call_terminate in py_converters.o
___clang_call_terminate in _path_wrapper.o
"typeinfo for char const*", referenced from:
Py_affine_transform(_object*, _object*, _object*) in _path_wrapper.o
void get_path_collection_extents<py::PathGenerator, numpy::array_view<double const, 3>, numpy::array_view<double const, 2> >(agg::trans_affine&, py::PathGenerator&, numpy::array_view<double const, 3>&, numpy::array_view<double const, 2>&, agg::trans_affine&, extent_limits&) in _path_wrapper.o
GCC_except_table32 in _path_wrapper.o
GCC_except_table33 in _path_wrapper.o
GCC_except_table34 in _path_wrapper.o
GCC_except_table35 in _path_wrapper.o
GCC_except_table38 in _path_wrapper.o
...
"typeinfo for std::runtime_error", referenced from:
typeinfo for std::overflow_error in _path_wrapper.o
"typeinfo for std::bad_alloc", referenced from:
GCC_except_table32 in _path_wrapper.o
GCC_except_table33 in _path_wrapper.o
GCC_except_table34 in _path_wrapper.o
GCC_except_table35 in _path_wrapper.o
GCC_except_table38 in _path_wrapper.o
GCC_except_table39 in _path_wrapper.o
GCC_except_table40 in _path_wrapper.o
...
"typeinfo for std::exception", referenced from:
typeinfo for py::exception in py_converters.o
typeinfo for py::exception in _path_wrapper.o
"vtable for __cxxabiv1::__si_class_type_info", referenced from:
typeinfo for py::exception in py_converters.o
typeinfo for py::exception in _path_wrapper.o
typeinfo for std::overflow_error in _path_wrapper.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for std::bad_alloc", referenced from:
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
Py_path_in_path(_object*, _object*, _object*) in _path_wrapper.o
...
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"operator delete[](void*)", referenced from:
void cleanup_path<py::PathIterator>(py::PathIterator&, agg::trans_affine&, bool, bool, agg::rect_base<double> const&, e_snap_mode, double, bool, bool, SketchParams, std::vector<double, std::allocator<double> >&, std::vector<unsigned char, std::allocator<unsigned char> >&) in _path_wrapper.o
void convert_path_to_polygons<py::PathIterator>(py::PathIterator&, agg::trans_affine&, double, double, std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >&) in _path_wrapper.o
bool path_intersects_path<py::PathIterator, py::PathIterator>(py::PathIterator&, py::PathIterator&) in _path_wrapper.o
bool path_in_path<py::PathIterator, py::PathIterator>(py::PathIterator&, agg::trans_affine&, py::PathIterator&, agg::trans_affine&) in _path_wrapper.o
void points_in_path<py::PathIterator, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >, std::vector<bool, std::allocator<bool> > >(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, double, py::PathIterator&, agg::trans_affine&, std::vector<bool, std::allocator<bool> >&) in _path_wrapper.o
void clip_path_to_rect<py::PathIterator>(py::PathIterator&, agg::rect_base<double>&, bool, std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >&) in _path_wrapper.o
void points_on_path<py::PathIterator, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >, std::vector<bool, std::allocator<bool> > >(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, double, py::PathIterator&, agg::trans_affine&, std::vector<bool, std::allocator<bool> >) in _path_wrapper.o
...
"operator delete(void*)", referenced from:
_convert_dashes_vector in py_converters.o
std::domain_error::~domain_error() in py_converters.o
std::invalid_argument::~invalid_argument() in py_converters.o
std::length_error::~length_error() in py_converters.o
std::out_of_range::~out_of_range() in py_converters.o
std::range_error::~range_error() in py_converters.o
std::overflow_error::~overflow_error() in py_converters.o
...
"operator new[](unsigned long)", referenced from:
agg::pod_bvector<agg::point_base<double>, 6u>::add(agg::point_base<double> const&) in agg_curves.o
agg::image_filter_lut::realloc_lut(double) in agg_image_filters.o
agg::vertex_sequence<agg::vertex_dist, 6u>::add(agg::vertex_dist const&) in agg_vcgen_contour.o
agg::math_stroke<agg::pod_bvector<agg::point_base<double>, 6u> >::calc_join(agg::pod_bvector<agg::point_base<double>, 6u>&, agg::vertex_dist const&, agg::vertex_dist const&, agg::vertex_dist const&, double, double) in agg_vcgen_contour.o
agg::math_stroke<agg::pod_bvector<agg::point_base<double>, 6u> >::calc_miter(agg::pod_bvector<agg::point_base<double>, 6u>&, agg::vertex_dist const&, agg::vertex_dist const&, agg::vertex_dist const&, double, double, double, double, agg::line_join_e, double, double) in agg_vcgen_contour.o
agg::math_stroke<agg::pod_bvector<agg::point_base<double>, 6u> >::calc_arc(agg::pod_bvector<agg::point_base<double>, 6u>&, double, double, double, double, double, double) in agg_vcgen_contour.o
agg::vertex_sequence<agg::vertex_dist, 6u>::add(agg::vertex_dist const&) in agg_vcgen_dash.o
...
"operator new(unsigned long)", referenced from:
_convert_dashes_vector in py_converters.o
std::vector<Dashes, std::allocator<Dashes> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Dashes*, std::vector<Dashes, std::allocator<Dashes> > >, Dashes const&) in py_converters.o
std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::operator=(std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > > const&) in py_converters.o
std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<double, double>*, std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > > >, std::pair<double, double> const&) in py_converters.o
convert_polygon_vector(std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >&) in _path_wrapper.o
void cleanup_path<py::PathIterator>(py::PathIterator&, agg::trans_affine&, bool, bool, agg::rect_base<double> const&, e_snap_mode, double, bool, bool, SketchParams, std::vector<double, std::allocator<double> >&, std::vector<unsigned char, std::allocator<unsigned char> >&) in _path_wrapper.o
std::vector<unsigned char, std::allocator<unsigned char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char const&) in _path_wrapper.o
...
"___cxa_allocate_exception", referenced from:
_convert_rect in py_converters.o
_convert_trans_affine in py_converters.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
Py_affine_transform(_object*, _object*, _object*) in _path_wrapper.o
numpy::array_view<double, 2>::array_view(long*) in _path_wrapper.o
numpy::array_view<unsigned char, 1>::array_view(long*) in _path_wrapper.o
...
"___cxa_begin_catch", referenced from:
_convert_rect in py_converters.o
_convert_trans_affine in py_converters.o
___clang_call_terminate in py_converters.o
std::vector<Dashes, std::allocator<Dashes> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Dashes*, std::vector<Dashes, std::allocator<Dashes> > >, Dashes const&) in py_converters.o
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
...
"___cxa_end_catch", referenced from:
_convert_rect in py_converters.o
_convert_trans_affine in py_converters.o
std::vector<Dashes, std::allocator<Dashes> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Dashes*, std::vector<Dashes, std::allocator<Dashes> > >, Dashes const&) in py_converters.o
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_on_path(_object*, _object*, _object*) in _path_wrapper.o
...
"___cxa_get_exception_ptr", referenced from:
_convert_rect in py_converters.o
_convert_trans_affine in py_converters.o
Py_point_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_in_path(_object*, _object*, _object*) in _path_wrapper.o
Py_point_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_points_on_path(_object*, _object*, _object*) in _path_wrapper.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
...
"___cxa_rethrow", referenced from:
std::vector<Dashes, std::allocator<Dashes> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Dashes*, std::vector<Dashes, std::allocator<Dashes> > >, Dashes const&) in py_converters.o
std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::vector<XY, std::allocator<XY> >*, std::vector<std::vector<XY, std::allocator<XY> >, std::allocator<std::vector<XY, std::allocator<XY> > > > >, std::vector<XY, std::allocator<XY> > const&) in _path_wrapper.o
std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::vector<double, std::allocator<double> >*, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > > >, std::vector<double, std::allocator<double> > const&) in _path_wrapper.o
"___cxa_throw", referenced from:
_convert_rect in py_converters.o
_convert_trans_affine in py_converters.o
Py_get_path_collection_extents(_object*, _object*, _object*) in _path_wrapper.o
Py_point_in_path_collection(_object*, _object*, _object*) in _path_wrapper.o
Py_affine_transform(_object*, _object*, _object*) in _path_wrapper.o
numpy::array_view<double, 2>::array_view(long*) in _path_wrapper.o
numpy::array_view<unsigned char, 1>::array_view(long*) in _path_wrapper.o
...
"___gxx_personality_v0", referenced from:
Dwarf Exception Unwind Info (__eh_frame) in py_converters.o
Dwarf Exception Unwind Info (__eh_frame) in _path_wrapper.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
StackOverflow seems to think this is related to assumptions that a C interface is being included as C++:
Reactions are currently unavailable