Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include path (cflags) order incorrect: Prioritizes system headers over overlay headers. #200

Closed
mirzashah opened this issue Oct 8, 2012 · 0 comments

Comments

@mirzashah
Copy link
Member

The include path (-I) order during compilation is incorrect in that it places the include path for system-installed ROS (e.g. /opt/ros/groovy/include) rather than the include path in your catkin workspace first. I noticed the issue when I updated rospack source in my workspace earlier today. A new method was added to rospack.cpp and the corresponding header file was adjusted with the newly added method. However, the compiler fails as it includes the system version first rather than the workspace version. If I had installed the updated .deb from shadow-fixed and pulled in the new header, it would have fixed the issue. However, this is not the behavior we want.

Problem: The overlaid version in my workspace should have it's header files included before the system version.

How to recreate:
-Create an overlay for a system-installed Catkin package in your workspace
-Remove (temporarily) one or more method declarations from the system version (/opt/ros/...) of a header file from said package.
-Attempt to build the package in your Catkin workspace. It should fail as it will try to pull in the system version first. You can confirm with make VERBOSE=1 to see the ordering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants