Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3320

Qpid C++ build fails on Cygwin

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Auto Closed
    • 0.10
    • None
    • C++ Broker, C++ Build
    • Windows 7 64-bit running Cygwin 1.7.9

    Description

      I am trying to build the Qpid C++ 0.10 project using gcc in Cygwin.
      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 which 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'
      

      Attachments

        1. CMakeLists.txt
          49 kB
          Matt Stevenson

        Activity

          People

            Unassigned Unassigned
            matt.stevenson Matt Stevenson
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: