Hi again all, I've done a bit of Googling on this and it appears that
this behaviour has something to do with changes that have been made to
the linker behaviour
http://fedoraproject.org/wiki/UnderstandingDSOLinkChange (this is a
Fedora page and I'm using Mint but the symptoms seem identical).
Has anyone else seen this and got a decent workaround?
I'll have a play and see if I can hack the makefile, at a guess it
probably just needs an *explicit* -lboost_program_options added to the
right place in the Makefile my problem is that I'm clueless about
automake, so if it doesn't "just work" I'm working blind. At a guess
some work is needed to the automake generation templates to fix this
properly, but I wouldn't know where to begin.
I suspect that I'm not the only one who's going to be seeing this issue
(my Mint 12 box uses gcc version 4.6.1) given the description in the
Fedora page.
I'd appreciate any thoughts/tips
cheers,
Frase
On 31/12/11 14:07, Fraser Adams wrote:
Hi all,
in a fit of post Xmas madness I decided it would be a good idea to
upgrade my old (but working) Ubuntu Studio 9 based box to something a
bit more up to date.
I opted for Linux Mint 12 which I believe is based on Ubuntu 11.10
I installed all of the packages that I believe were necessary to make
and install qpid (I've done it several times on my old box) and
configure seemed to complete fine with no issues of note.
I installed Cajus Pollmeier's "fix-unused.patch" which gets rid of
make problems relating to ignored return values from things like
::lockf, ::write and ::system in a couple of places.
However when I run make I fail with the error a the bottom of this mail:
The key thing seems to be "undefined reference to symbol
'boost::program_options::validate".
It seems a bit weird to me though as I've checked through on my
package manager and I've got all of the boost and boost dev packages
installed for boost 1.46.
I'm suspecting a linker path issue, but all the automake stuff is
voodoo to me so I'm not quite sure where to look first. I might have a
play with LDFLAGS to see if I can get anywhere but I thought I'd post
to see if anyone else has hit this issue. I'm guessing I'm not alone
on this - has anyone else tried compiling qpid 0.12 on Linux Mint 12
or Ubuntu 11.10? Has anyone got it working?
Cheers (and Happy New Year to everyone)
Frase
/bin/bash ../libtool --tag=CXX --mode=link g++ -Werror -pedantic
-Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align
-Wno-long-long -Wvolatile-register-var -Winvalid-pch
-Wno-system-headers -Woverloaded-virtual
-DQPID_LIBEXEC_DIR=\"/usr/local/libexec/qpid\"
-DBOOST_FILESYSTEM_VERSION=2
-DQPIDD_MODULE_DIR=\"/usr/local/lib/qpid/daemon\"
-DQPIDD_CONF_FILE=\"/usr/local/etc/qpidd.conf\" -g -O2
-L/home/fadams/qpid/qpid-0.12/cpp/src/.libs -L/usr/lib/openais
-L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync -o
qpidd qpidd-qpidd.o posix/qpidd-QpiddBroker.o libqpidbroker.la
libqpidcommon.la
libtool: link: g++ -Werror -pedantic -Wall -Wextra -Wno-shadow
-Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long
-Wvolatile-register-var -Winvalid-pch -Wno-system-headers
-Woverloaded-virtual -DQPID_LIBEXEC_DIR=\"/usr/local/libexec/qpid\"
-DBOOST_FILESYSTEM_VERSION=2
-DQPIDD_MODULE_DIR=\"/usr/local/lib/qpid/daemon\"
-DQPIDD_CONF_FILE=\"/usr/local/etc/qpidd.conf\" -g -O2 -o .libs/qpidd
qpidd-qpidd.o posix/qpidd-QpiddBroker.o
-L/home/fadams/qpid/qpid-0.12/cpp/src/.libs -L/usr/lib/openais
-L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync
./.libs/libqpidbroker.so ./.libs/libqpidcommon.so
/usr/bin/ld: posix/qpidd-QpiddBroker.o: undefined reference to symbol
'boost::program_options::validate(boost::any&,
std::vector<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > const&,
std::basic_string<char, std::char_traits<char>, std::allocator<char>
>*, int)'
/usr/bin/ld: note: 'boost::program_options::validate(boost::any&,
std::vector<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > const&,
std::basic_string<char, std::char_traits<char>, std::allocator<char>
>*, int)' is defined in DSO
/usr/lib/libboost_program_options.so.1.46.1 so try adding it to the
linker command line
/usr/lib/libboost_program_options.so.1.46.1: could not read symbols:
Invalid operation
collect2: ld returned 1 exit status
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscr...@qpid.apache.org