Мой проект поделен на модули - статические библиотеки, и одно приложение. При сборке билиотек все проходит на ура. А вот при сборке исполняемого файла валит ошибки:
Код | /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o): In function `SourceData::SerialConfigurator::SerialConfigurator(Util::ParamStorage&)': /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:9: undefined reference to `Util::ConfiguratorBase::ConfiguratorBase(Util::ParamStorage&)' /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:9: undefined reference to `Util::ConfiguratorBase::~ConfiguratorBase()' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o): In function `SourceData::SerialConfigurator::SerialConfigurator(Util::ParamStorage&, std::string const&, unsigned int)': /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:18: undefined reference to `Util::ConfiguratorBase::ConfiguratorBase(Util::ParamStorage&)' /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:18: undefined reference to `Util::ConfiguratorBase::~ConfiguratorBase()' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o): In function `SourceData::SerialConfigurator::~SerialConfigurator()': /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:23: undefined reference to `Util::ConfiguratorBase::~ConfiguratorBase()' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o): In function `SourceData::SerialConfigurator::GetBaudrate() const': /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:26: undefined reference to `Util::ConfiguratorBase::GetStorage() const' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o): In function `SourceData::SerialConfigurator::GetDeviceName() const': /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:30: undefined reference to `Util::ConfiguratorBase::GetStorage() const' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o): In function `SourceData::SerialConfigurator::MakeParam()': /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:34: undefined reference to `Util::ConfiguratorBase::GetStorage() const' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o): In function `SourceData::SerialConfigurator::InitKey()': /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:46: undefined reference to `Util::ConfiguratorBase::AddKey(std::string)' /home/kopysov/projects/OrionWebModules/SourceData/Serial/SerialConfigurator.cpp:47: undefined reference to `Util::ConfiguratorBase::AddKey(std::string)' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(SerialConfigurator.o):(.data.rel.ro._ZTIN10SourceData18SerialConfiguratorE[_ZTIN10SourceData18SerialConfiguratorE]+0x8): undefined reference to `typeinfo for Util::ConfiguratorBase' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libSourceDatad.a(Serial.o): In function `SourceData::Serial::DoOpen(Util::ParamStorage const&)': /home/kopysov/projects/OrionWebModules/SourceData/Serial/Serial.cpp:25: undefined reference to `Util::ConfiguratorBase::IsValid() const' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(Bus.o): In function `TaskLevel::Bus::Start()': /home/kopysov/projects/OrionWebModules/TaskLevel/Bus.cpp:72: undefined reference to `Protocol::DeviceListBase::begin()' /home/kopysov/projects/OrionWebModules/TaskLevel/Bus.cpp:74: undefined reference to `Protocol::DeviceBase::IsPolling() const' /home/kopysov/projects/OrionWebModules/TaskLevel/Bus.cpp:75: undefined reference to `Protocol::DeviceBase::GetAddres() const' /home/kopysov/projects/OrionWebModules/TaskLevel/Bus.cpp:72: undefined reference to `Protocol::DeviceListBase::end()' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(SessionQueue.o): In function `TaskLevel::SessionQueue::SetPriority(std::vector<unsigned char, std::allocator<unsigned char> > const&)': /home/kopysov/projects/OrionWebModules/TaskLevel/SessionQueue.cpp:109: undefined reference to `Util::QueueGlassCash::QueueGlassCash(std::vector<unsigned char, std::allocator<unsigned char> > const&)' /home/kopysov/projects/OrionWebModules/TaskLevel/SessionQueue.cpp:111: undefined reference to `Util::QueueGlassCash::IsValid()' /home/kopysov/projects/OrionWebModules/TaskLevel/SessionQueue.cpp:114: undefined reference to `Util::QueueGlassCash::Make(std::vector<unsigned char, std::allocator<unsigned char> >&)' /home/kopysov/projects/OrionWebModules/TaskLevel/SessionQueue.cpp:116: undefined reference to `Util::QueueGlassCash::~QueueGlassCash()' /home/kopysov/projects/OrionWebModules/TaskLevel/SessionQueue.cpp:116: undefined reference to `Util::QueueGlassCash::~QueueGlassCash()' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(BusConfigurator.o): In function `TaskLevel::BusConfigurator::GetTransportOption() const': /home/kopysov/projects/OrionWebModules/TaskLevel/BusConfigurator.cpp:94: undefined reference to `SourceData::ParamConverterFactory::ParamConverterFactory()' /home/kopysov/projects/OrionWebModules/TaskLevel/BusConfigurator.cpp:95: undefined reference to `SourceData::ParamConverterFactory::Create(unsigned int)' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(BusConfigurator.o): In function `TaskLevel::BusConfigurator::GetDeviceList() const': /home/kopysov/projects/OrionWebModules/TaskLevel/BusConfigurator.cpp:149: undefined reference to `Protocol::Factory::Factory(unsigned short)' /home/kopysov/projects/OrionWebModules/TaskLevel/BusConfigurator.cpp:153: undefined reference to `Protocol::Factory::CreateDeviceList() const' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(BusConfigurator.o): In function `TaskLevel::BusConfigurator::GetProtocol() const': /home/kopysov/projects/OrionWebModules/TaskLevel/BusConfigurator.cpp:224: undefined reference to `Protocol::Factory::Factory(unsigned short)' /home/kopysov/projects/OrionWebModules/TaskLevel/BusConfigurator.cpp:225: undefined reference to `Protocol::Factory::CreateProtocol(std::shared_ptr<SourceData::SourceDataBase>&) const' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(DeviceListDispatcher.o): In function `TaskLevel::DeviceListDispatcher::OnNoAnswer(Util::EmptyNotify<Protocol::SessionNotify, 4u, unsigned int, Util::empty_t2, Util::empty_t2, Util::empty_t2>*)': /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:44: undefined reference to `Protocol::DeviceListBase::operator[](unsigned int)' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:45: undefined reference to `Protocol::DeviceListBase::TestNoAnswer(unsigned char) const' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:46: undefined reference to `Protocol::DeviceBase::IsOnline() const' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:47: undefined reference to `Protocol::DeviceBase::SetOnline(bool)' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:49: undefined reference to `Protocol::DeviceBase::GetNoAnswer() const' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:56: undefined reference to `Protocol::DeviceBase::NoAnswerUp()' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(DeviceListDispatcher.o): In function `TaskLevel::DeviceListDispatcher::SessionSuccess(unsigned int)': /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:118: undefined reference to `Protocol::DeviceListBase::operator[](unsigned int)' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:120: undefined reference to `Protocol::DeviceBase::NoAnswerClear()' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:122: undefined reference to `Protocol::DeviceBase::SetLastTime()' make[1]: Leaving directory `/home/kopysov/projects/OrionWebModules/PowerTestDataSession' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:124: undefined reference to `Protocol::DeviceBase::IsOnline() const' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:125: undefined reference to `Protocol::DeviceBase::SetOnline(bool)' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListDispatcher.cpp:132: undefined reference to `Protocol::DeviceListBase::TestSessionPause(unsigned char) const' /home/kopysov/projects/OrionWebModules/OrionWebModules/../lib/libTaskLeveld.a(DeviceListConfigurator.o): In function `TaskLevel::DeviceListConfigurator::Configure(std::shared_ptr<Protocol::DeviceListBase>&)': /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListConfigurator.cpp:58: undefined reference to `Protocol::DeviceListBase::SetMaxAddress(unsigned int)' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListConfigurator.cpp:59: undefined reference to `Protocol::DeviceListBase::SetMaxNoAnswer(unsigned int)' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListConfigurator.cpp:60: undefined reference to `Protocol::DeviceListBase::SetMaxSessionPause(unsigned int)' /home/kopysov/projects/OrionWebModules/TaskLevel/DeviceListConfigurator.cpp:61: undefined reference to `Protocol::DeviceListBase::SetPolling(std::list<unsigned char, std::allocator<unsigned char> > const&)' collect2: error: ld returned 1 exit status make[1]: *** [../bin/PowerTest] Error 1 make: *** [sub----PowerTestDataSession-make_default-ordered] Error 2 13:57:13: Процесс «/usr/bin/make» завершился с кодом 2.
|
Причем этот проект под WIN MSVC2010 все отлично собирается, не понимаю что за особенность GCC такая лазить за либами в исходники дважды. |