I’ve been trying to build Humble for macOS 13.5.2 (on M1). With the help of Discord, I’ve gotten further along, but now I’ve run into an issue I’m not sure how to solve.

When building python_orocos_kdl_vendor, I get the following error:

In file included from /Users/rmann/ros2_humble/build/python_orocos_kdl_vendor/_deps/python_orocos_kdl-src/python_orocos_kdl/PyKDL/PyKDL.cpp:27:
In file included from /Users/rmann/ros2_humble/build/python_orocos_kdl_vendor/_deps/python_orocos_kdl-src/python_orocos_kdl/PyKDL/PyKDL.h:26:
In file included from /Users/rmann/ros2_humble/install/pybind11_vendor/include/pybind11_vendor/pybind11/pybind11.h:13:
In file included from /Users/rmann/ros2_humble/install/pybind11_vendor/include/pybind11_vendor/pybind11/attr.h:13:
In file included from /Users/rmann/ros2_humble/install/pybind11_vendor/include/pybind11_vendor/pybind11/cast.h:16:
/Users/rmann/ros2_humble/install/pybind11_vendor/include/pybind11_vendor/pybind11/detail/type_caster_base.h:482:26: error: member access into incomplete type 'PyFrameObject' (aka '_frame')
            frame = frame->f_back;
/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.11/include/python3.11/pytypedefs.h:22:16: note: forward declaration of '_frame'
typedef struct _frame PyFrameObject;
1 error generated.
make[2]: *** [_deps/python_orocos_kdl-build/CMakeFiles/PyKDL.dir/PyKDL/PyKDL.cpp.o] Error 1
make[1]: *** [_deps/python_orocos_kdl-build/CMakeFiles/PyKDL.dir/all] Error 2
make: *** [all] Error 2

This is due to a bug in the pybind11 v2.9.1 dependency. The bug in that version is allegedly fixed in v2.10.4, possibly earlier.

Brew on macOS installs the latest pybind11, v2.11.1, but ros2 doesn’t find that. I don’t know enough about cmake to understand why (perhaps it’s only looking for v2.9.1).

I’m not sure how it even builds for other platforms.

In any case, can anyone recommend a way to resolve this?

  • 2
    $\begingroup$ having the same issue $\endgroup$ Oct 8, 2023 at 22:39


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.