Hi,
I was able to build the Qpid C++ 0.10 project in Ubuntu without any
problems, but trying to build in Cygwin on Windows 7 64 has been
unsuccessful.

I was able to configure everything fine with both cmake and ./configure, but
I get errors about 40% through the build, when I get to: "Creating library
file: libqpidcommon.dll.a"
The first errors I got were:

CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x36): undefined
> reference to `boost::system::get_system_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x40):
> undefined reference to `boost::system::get_generic_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x4a):
> undefined reference to `boost::system::get_generic_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x54):
> undefined reference to `boost::system::get_generic_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x5e):
> undefined reference to `boost::system::get_system_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text$_ZN5boost6system10error_codeC1Ev[boost::system::error_code::error_code()]+0x10):
> undefined reference to `boost::system::get_system_category()'


After a little research, I found that the boost system library needed to be
linked along with the program_options lib after boost version 1.35 (I have
1.43).  Looking through ./src/CMakeList.txt I saw a few places where someone
was checking boost versions to include the system lib, but it wasn't being
linked along with program_options.  I made a few changes to link the system
lib (modified ./src/CMakeList.txt: http://pastebin.com/i753aD8C [It does not
properly check boost version when setting the target link libs, assumes
boost >= 1.35]).  Linking the system lib fixed the above errors.

The other errors I could not fix are:

> CMakeFiles/qpidcommon.dir/qpid/Url.o:Url.cpp:(.text+0x783): undefined
> reference to `qpid::sys::SystemInfo::getLocalIpAddresses(unsigned short,
> std::vector<qpid::Address, std::allocator<qpid::Address> >&)'
> CMakeFiles/qpidcommon.dir/qpid/Url.o:Url.cpp:(.text+0xc87): undefined
> reference to `qpid::sys::SystemInfo::getLocalHostname(qpid::Address&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x9f7):
> undefined reference to
> `qpid::sys::Poller::interrupt(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xb11):
> undefined reference to
> `qpid::sys::Poller::interrupt(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xb36):
> undefined reference to
> `qpid::sys::Poller::unregisterHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xbad):
> undefined reference to
> `qpid::sys::Poller::unregisterHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xd60):
> undefined reference to
> `qpid::sys::Poller::unregisterHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xe67):
> undefined reference to
> `qpid::sys::Poller::unmonitorHandle(qpid::sys::PollerHandle&,
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xf75):
> undefined reference to
> `qpid::sys::Poller::unmonitorHandle(qpid::sys::PollerHandle&,
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1083):
> undefined reference to
> `qpid::sys::Poller::unmonitorHandle(qpid::sys::PollerHandle&,
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1191):
> undefined reference to
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&,
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x129f):
> undefined reference to
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&,
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1424):
> undefined reference to
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&,
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x151f):
> undefined reference to
> `qpid::sys::Poller::registerHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x15a0):
> undefined reference to
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&,
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1780):
> undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x17a8):
> undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1976):
> undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x199e):
> undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1b6c):
> undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1b94):
> more undefined references to `qpid::sys::PollerHandle::~PollerHandle()'
> follow
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1bd2):
> undefined reference to
> `qpid::sys::PollerHandle::PollerHandle(qpid::sys::IOHandle const&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1dc6):
> undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1df2):
> undefined reference to
> `qpid::sys::PollerHandle::PollerHandle(qpid::sys::IOHandle const&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1fe6):
> undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.rdata$_ZTIN4qpid3sys14DispatchHandleE[typeinfo
> for qpid::sys::DispatchHandle]+0x8): undefined reference to `typeinfo for
> qpid::sys::PollerHandle'


I found an old reference to similar errors when building on FreeBSD, which
were patched (
http://mail-archives.apache.org/mod_mbox/qpid-dev/201004.mbox/%3C17074332.130791271911009151.JavaMail.jira@thor%3E
)
Has anyone successfully built this on Cygwin?  Do I have something
misconfigured or does Qpid need some Cygwin specific code added somewhere?

Thanks,

-- 
Matt Stevenson.

Reply via email to