[Discourse.ros.org] [OpenEmbedded] Catkin_make error building package on machine after image install
I am trying to build a package on the machine after I generated the image. I wanted to have it build with bitbake but had issues with external dependencies not building properly with BitBake so they have to be installed on the machine.
catkin_make fails with error:
-- Using CATKIN_DEVEL_PREFIX: /home/root/lidar_workspace/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/indigo
-- This workspace overlays: /opt/ros/indigo
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using default Python package layout
-- Could NOT find PY_em (missing: PY_EM)
CMake Error at /opt/ros/indigo/share/catkin/cmake/empy.cmake:29 (message):
Unable to find either executable 'empy' or Python module 'em'... try
installing the package 'python-empy'
Call Stack (most recent call first):
running `find tmp/sysroots/salvator-x/ -name "*empy*"` results in:
I'm sure I'm missing something important related to installing python-empy but from what I can see with the recipes it should be installed with the packagegroup-ros-comm.
Since then, no one has actually tried to do this, but we have been working on proper SDK support (nativesdk support in the bitbake tool chain), and the patches of this pull request below might help for your use case as well:
I did some minimal testing of that branch so far, but I don't know if it resolves your use case.
Let us know if these patches already resolve the issue for you, or which further problem you encounter. I actually don't know if building ROS packages on the target is easy to get working or involves a lot of patching of the catkin build tool.
Thank you for your replies. I will read into your suggestions further and let you know how it goes. I am currently working on a workaround to allow me to build the package using bitbake instead of on target. If it does not go well I will be swinging back to this method.
[quote="joek, post:5, topic:3549"]
I am currently working on a workaround to allow me to build the package using bitbake instead of on target.
If this package you're compiling has been released, there's a good chance you can use [superflore](https://github.com/ros-infrastructure/superflore) to generate the recipe. I've been working on automating the Open Embedded releases so they can parallel the Gentoo releases.
While things are not quite there, they are close. I'm not an expert, so any ideas as to what is blocking me would be great. You can find my current status on the issues for [my fork](https://github.com/allenh1/meta-ros) of `meta-ros`.
The end package I am trying to build is not released. I am very much in the beginning of working with Open Embedded so I would not be of much help, but I am looking to get more involved in general. As for my progress, if it were not for the use of [OpenEXR v2.2.0|https://github.com/openexr/openexr] and [OpenVDB v2.1.0 |https://github.com/dreamworksanimation/openvdb] the package would build with less trouble. I did manage to get the workaround to work and the package built using BitBake. I will be investigating how to clean up the current build process, but for now this will do for the intended demo.