ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

# Catkin and eclipse

Hello,

i am using ROS Groovy on Ubuntu 12.04.

I want edit my packages in eclipse. On Fuerte i runed make eclipse-project and import this result as eclipse project.

At groovy i can include my catkin workspace as project. This is working.

But now i have a problems with my includes.

#include "ros/ros.h"

warning: Unresolved inclusion.


Or

ROS_INFO("text") error: Type 'std_msgs::String::ConstPtr' could not be resolved


and i couldnt see with crtl + mouse the functions.

What i do wrong ? what i must edit in eclipse that this is working?

edit retag close merge delete

Sort by » oldest newest most voted

Here is how I do this. Go to your workspace directory and run catkin_make with options to generate eclipse project files:

cd ~/catkin_ws
catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"


The project files will be generated in the build/ folder. Now source the workspace setup and start eclipse from the terminal:

source ~/catkin_ws/devel/setup.bash
eclipse


This allows eclipse to get the correct environment to be able to build from within eclipse. Now import the project from the build/ folder. Eclipse provides a link named "Source directory" within the project so that you can edit the source code. Using this method, the indexer resolves all symbols correctly, and Eclipse is also able to build the workspace successfully.

more

thank you for the answer i can build my project in eclipse now. But in source directory in my files i have stille the problem that my functions could not be resolved. For example Function 'ROS_INFO_STREAM' could not be resolved. But i can build it. I dont understand why.

( 2013-01-23 01:54:04 -0500 )edit

Is it possible that i must change my library path manuel? that he can resolve this?

( 2013-01-23 01:55:58 -0500 )edit

This should work out of the box. Go to Project Properties -> C++ Include Paths, and make sure that all the required ROS include directories are present, like /opt/ros/groovy/include. Also try rebuilding the index if it's never been done before (Right click on project -> Index -> Rebuild).

( 2013-01-23 06:39:16 -0500 )edit

If I execute /catkin_make -G"Eclipse CDT4 - Unix Makefiles"/ then the action is just normal catkin_make and no eclipse project is created. Any ideas why? Or how to find the eclipse project in build/? I can't see anything new.

( 2013-01-29 09:45:37 -0500 )edit

Do you see the .project and .cproject files in the build/ directory? These are what allow Eclipse to import the project, using File -> Import -> General -> Existing Projects into Workspace, and then select the build directory. It should then show you the auto-generated project which you can import.

( 2013-01-29 10:17:07 -0500 )edit

No .project or .cproject anywhere.

( 2013-01-29 10:25:18 -0500 )edit
1

The problem was, that if all projects were compiled, then catkin_make did not invoke cmake and cmake did not get the command to make eclipse files. Eclipse files get generated if catkin_make clean was done previously or if I force cmake with the -force-cmake flag.

( 2013-01-29 20:45:28 -0500 )edit

Thanks for the information. I've updated the answer above to include --force-cmake.

( 2013-01-30 09:03:37 -0500 )edit

The accepted answer works for generating the project files out of source (The catkin way).

For an in source generation of the files use Quizzarex's answer: You can do this in any folder containing a CMakeLists.txt:

cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_MAKE_ARGUMENTS=-j8


(I created a new answer because in comments formatting is not possible.)

more

Using this command worked better for me. Otherwise by doing cmake on the entire src folder there were some header files that Eclipse was not able to link to

( 2013-11-08 05:09:59 -0500 )edit

Creating a new answer is the correct thing to do regardless of formatting. Additional answers are too often put in comment chains.

( 2014-06-17 13:07:51 -0500 )edit

This method will partly defeat the purpose of having catkin style packages (with source and build directories separate).

( 2014-06-20 03:19:45 -0500 )edit

To remove the whole garbage that gets generated do rm -r catkin catkin_generated/ CMakeCache.txt CMakeFiles/ cmake_install.cmake CTestTestfile.cmake devel/ gtest/ Makefile test_results/

( 2014-09-24 01:12:25 -0500 )edit
1. cd to your <groovy workspace="">/src
2. run the following: cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_MAKE_ARGUMENTS=-j8 .

more

do you have an other idea? it is not working. but thank you for your help

( 2013-01-21 01:35:23 -0500 )edit

Assuming that eclipse runs from a shell - that has all the env variables set up - the best thing to do is the following:

1. Go to the "your catkin_workspace"/build directory.

2. Either create a new directory for the package that you are about to compile or enter the already built package.

3. So now the working directory is "your catkin_workspace"/build/"package_name":

From here run:

cmake ../../src/"package_name" -DCMAKE_INSTALL_PREFIX=../../install -DCATKIN_DEVEL_PREFIX=../../devel -G"Eclipse CDT4 - Unix Makefiles"


Viola!

This is better for two clear advantages:=

Firstly, you have different .project files for every project. This means that you can import them separately in eclipse. Secondly, this also means that when you build from within eclipse, the entire workspace is not built. Only the current project is built.

more

Not sure if this will help anyone in particular but I've been trying to fix these link errors off and on for about a week now so I thought I'd share what I've found.

Ubuntu 12.04, ROS Hydro, Catkin, and Eclipse Indigo 3.7.2

So I've been trying to get my code into my Eclipse IDE. I ran the set up described in the IDE tutorial here, http://wiki.ros.org/IDEs

I then imported as the tutorial asked but got all sorts of link error issues... kept deleting the project and retrying the steps and checking to make sure that all components of C++ were installed for eclipse indigo. Tried manually adding libraries, but I was getting simple link errors like std::string.

Nothing in here really seemed to help with link errors. Until I noticed fivef and Quizzarex's answers here. I then went to workspace/src folder and ran the following,

cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_MAKE_ARGUMENTS=-j8


Then in eclipse I imported the existing project from the workspace/src folder.

This worked much nicer as far as removing unnecessary clutter from your Project Explorer in Eclipse since it added only my catkin projects as they are and not my all my project build folders along with a separate linked [Source directories] directory. Although there probably is a solution to that using the prior method from the build folder.

To my surprise this method also removed my linking errors.

If your still having errors you may want to try using Eclipse Kepler.

I started using and noticed a new feature called "Re-resolve Unresolved Includes". This is actually when I noticed that my Workspace/src folder worked after running "Re-resolve Unresolved Includes" in Kepler... but I've since tried remaking the Eclipse Project and importing, as I mentioned above from the workspace/src directory, and haven't been able to reproduce the unresolved link errors.

Hope this helps, I guess its kind of a redundant post to fivef's and Quizzarex's answers but I was finally happy to see no link errors and thought I'd mention my solution.

more

This tutorial worked: http://cs460.coins-lab.org

You will also need to add the python path: adding python path

more

I have got Liclipse for Python. Is there a similar thing for Liclipse?

more