0
$\begingroup$

Rosanswers logo

I am in the process of building Hydro for Debian Weezy according to http://wiki.ros.org/hydro/Installation/Debian .

I have a build problem (1) and a question (2):

  1. At step 4.3 "sudo checkinstall make install" gives error:

[ 21%] Building CXX object keypoints/CMakeFiles/pcl_keypoints.dir/src/iss_3d.cpp.o c++: error trying to exec 'cc1plus': execvp: No such file or directory

There is g++-4.7 installed on my system and g++ compiles c++ code if invoked directly from command line, although cc1plus is not in the $PATH. Should I somehow manually add it there? I am not sure how to do that.

  1. At the end of 4.3 it says "When running check-install rename the package as follows and provide lines to libpcl-all-dev to match the rosdep dependency." What does that "as follows" mean - PCL is not mentioned anywhere afterwards - and how one has to "provide lines" "to match rosdep dependency"? More clear explanation would be very much appreciated for those who are not familiar with building .deb packages and ROS, but still want to build ROS in Debian.

Originally posted by AStudent on ROS Answers with karma: 43 on 2014-02-09

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

It looks like there may not be a problem with having cc1plus in your path, it would probably be in some /usr/bin or /bin directory anyway, I would guess that its because execvp is not installed on your system. Try getting it from synaptic. You may need to ask someone more experienced if you still run into a problem.

The package renaming needs to happen because of the list that rosdep checks a list compiled by other debian ROS users to make sure you have all of your dependencies at build time. You can see it here: http://docs.ros.org/independent/api/rosdep/html/contributing_rules.html Essentially check-install just makes a .deb package out of normal cmake directions. It takes care of making sure the package can't be used without the linked libraries used to build it and placing it's components in the right place. I think it gets the names for the package in the cmake file, but the rosdep dependencies were named something else in several cases, so even though you build it, rosdep won't find it unless you change the name when you run the checkinstall command.

I put a lot of that material up there, and am still in the process of learning myself so you might just have to play around by looking at other tutorials for building PCL. My general strategy when compiling was to first try to build ros, then at a dependency failure 1. see if i could find it in the wheezy repos, 2. see if I could find it in a testing repo to backport it (directions for that on the debian experimental page), 3. compile from source. If I got unlucky and ended up at 3 and the compile failed, I would check to make sure every package in the error was installed, then check for required versions listed by the package maintainers, and lastly look at bug reports.

I want to bring a ROS binary package to debian but I'm afraid that even if I do ROS will be moving so fast that I won't be able to help maintain it. If you or anyone else reading would be up for starting a maintainer group, I'd be down to try and make it happen.


Originally posted by St3am with karma: 170 on 2014-02-11

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by ahendrix on 2014-02-11:
FYI, execvp is a system call. It's present on all POSIX-compliant systems.

$\endgroup$

Your Answer

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