ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

64 bit catkin/ boost issue

asked 2014-09-25 12:27:42 -0600

blakeh gravatar image

I have a new ubuntu 64 bit 14.04 upgrade and a project which used to build successfully with catkin_make. Now I'm getting

make[2]: * No rule to make target `/usr/lib/libboost_regex-mt.so', needed by ... < one of my source files>

I've re-installed ros/indigo

Any ideas? (thanks in advance)

edit retag flag offensive close merge delete

Comments

1

I know it may sounds obvious did you try to install the library

libboost-regex-dev

and its dependencies? Or alternatively:

libboost-all-dev

to install everything

Mago Nick gravatar image Mago Nick  ( 2014-09-26 04:05:09 -0600 )edit

Thanks - obvious is OK! However : apt-get install returned:

libboost-all-dev is already the newest version.

blakeh gravatar image blakeh  ( 2014-09-26 10:41:05 -0600 )edit

@blanke, I have various ideas

  1. remove build and devel and try to recompile
  2. check if you are including boost libraries properly in the cmake file of your project
Mago Nick gravatar image Mago Nick  ( 2014-09-27 09:30:30 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
1

answered 2014-09-25 12:52:10 -0600

tfoote gravatar image

updated 2015-03-02 13:11:22 -0600

If you just upgraded you need to make sure that all generated and itermediate files are removed before recompiling. The build system cannot track changes to system libraries, you need to force it to refind them and remove all references to the old files. Typically this involves an rm -rf of build devel and install folders. Or the isolated versions if using isolated builds.

Edit:

The missing files are installed by libboost-regex1.54-dev on my system:

$ dpkg -L libboost-regex1.54-dev
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libboost-regex1.54-dev
/usr/share/doc/libboost-regex1.54-dev/copyright
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libboost_regex.a
/usr/share/doc/libboost-regex1.54-dev/changelog.Debian.gz
/usr/lib/x86_64-linux-gnu/libboost_regex.so

You need to make sure that cmake can find boost correctly and invalidate any cmake caches if the version or location of boost has changed. (rm -rf of build and devel are the recommended way to make sure to invalidate those caches. If you're linking against other things compiled from source you will need to rebuild/link them as well.)

edit flag offensive delete link more

Comments

We had another upgrade pushed (by IT org) and this happened again (as you predicted!) But, removing build and devel did not solve the problem.

blakeh gravatar image blakeh  ( 2014-11-04 17:22:00 -0600 )edit

Did anyone find a better solution yet? Same problem here!

Ruud gravatar image Ruud  ( 2015-03-03 02:42:28 -0600 )edit
-1

answered 2014-09-25 13:26:20 -0600

blakeh gravatar image

Thanks. rm-rf of build and devel didn't do it. Maybe install would have. The following commands fixed it:

>cd /usr/lib
> sudo ln libboost_regex.so.1.46.1          /usr/lib/libboost_regex-mt.so 
> sudo ln libboost_date_time.so.1.46.1   /usr/lib/libboost_date_time-mt.so
> sudo ln libboost_system.so.1.46.1       /usr/lib/libboost_system-mt.so
> sudo ln libboost_thread.so.1.46.1         /usr/lib/libboost_thread-mt.so
edit flag offensive delete link more

Comments

You do not want to do that. You are working around the symptom not finding the problem. If you rely on this it will bite you later.

tfoote gravatar image tfoote  ( 2014-09-25 13:48:45 -0600 )edit

Thanks Tulley - we did remove those dirs which did not fix the problem. So if you have a better suggestion I'd love to implement it.

blakeh gravatar image blakeh  ( 2014-09-25 13:58:46 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2014-09-25 12:27:42 -0600

Seen: 942 times

Last updated: Mar 02 '15