Bug #1439

pkgconfig is anvalid

Added by Anonymous about 11 years ago. Updated almost 11 years ago.

Status:ResolvedStart date:02/27/2013
Priority:HighDue date:
Assignee:S. Wrede% Done:

100%

Category:Build System
Target version:rsb-0.9

Description

The library name in the rsb0.9 pc file is invalid, resulting in:

/usr/bin/ld: cannot find -lrsb.0.9

when using pkgconfig instead of cmake. Additionally, linking boost-system is missing, resulting in

/usr/bin/ld: /tmp/ccIbmlCs.o: undefined reference to symbol 'boost::system::system_category()'
/usr/bin/ld: note: 'boost::system::system_category()' is defined in DSO /usr/lib/libboost_system.so.1.46.1 so try adding it to the linker command line
/usr/lib/libboost_system.so.1.46.1: could not read symbols: Invalid operation

A valid Libs: line in the pc file would look like this:

Libs: /usr/lib/librsb.so.0.9 -lboost_system

(tested on precise 64bit)


Related issues

Related to Robotics Service Bus - Bug #1441: Better handling of dependencies without pc file, e. g. bo... New 02/27/2013

Associated revisions

Revision 18832f40
Added by Arne Nordmann about 11 years ago

Export boost dependency to pkg-config file by default

  • Fixed rsb library link in pkg-config file
  • Introduced cmake user option EXPORT_BOOST_DEPENDENCY_TO_PKGCONFIG ("On" by deault)
  • If set, boost include pathes and libraries will be includes in the pkg-config file

fixes #1439

Revision 8a80d472
Added by S. Wrede almost 11 years ago

added boost system to library dependencies, fixes #1439, fixed package config for mac

History

#1 Updated by J. Wienke about 11 years ago

I think adding boost conflicts with #1292.

#2 Updated by Anonymous about 11 years ago

I don't really get #1292 and its relation to this issue. So is the external problem in this case, that boost doesn`t provide a pc file?

But anyhow, I think not-working-pkgconfig beats useful-when-cross-compiling. ;)

#3 Updated by J. Wienke about 11 years ago

Sure, but in the end we need to find out what to do with dependencies, which do not have a pc file. I think Alexandre requested the same things about the external dependencies.

#4 Updated by Anonymous about 11 years ago

  • Status changed from New to In Progress
  • Assignee set to Anonymous

I will fix this issue for now by including the boost lib, and opened an issue for better handling of the boost dependency (or in general dependencies without pc file) in the pkgconfig file, see #1441.

#5 Updated by Anonymous about 11 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 100

Applied in changeset rsb-cpp|commit:18832f4070afd4ab69d6adb6eb69bb10bf88d634.

#6 Updated by S. Wrede almost 11 years ago

  • Status changed from Resolved to In Progress
  • Assignee changed from Anonymous to S. Wrede

The current layout of the pkg-config file is (again) broken, in particular with boost_system. pkg-config gives the following information:

Sebastians-MacBook-Air:build swrede$ pkg-config --libs rsb0.9
-L/usr/local/lib /usr/local/Cellar/rsb/HEAD/lib/librsb.dylib.0.9 -lboost_system /usr/local/lib/libboost_regex-mt.dylib /usr/local/lib/libboost_date_time-mt.dylib /usr/local/lib/libboost_program_options-mt.dylib -Wl,--rpath -Wl,/usr/local/Cellar/rsc/HEAD/lib /usr/local/Cellar/rsc/HEAD/lib/librsc.0.9.dylib

This is the same on MacOS and Linux. Maybe that this is no problem on Linux, but it is on MacOS.

Is there any reason not to handle the boost_system dependency in the way the other boost deps are represented?

#7 Updated by S. Wrede almost 11 years ago

  • Status changed from In Progress to Resolved

Applied in changeset rsb-cpp|commit:8a80d4726a833937557526ae9eb0707233df411d.

Also available in: Atom PDF