Я пытаюсь связать статические версии библиотек POCO C++ следующим образом:
g++ BCCMain.o -L$_POCO_LIBS -Wl,-Bstatic $_POCO_LIBS/libPocoFoundation.a $_POCO_LIBS/libPocoUtil.a $_POCO_LIBS/libPocoXML.a $_POCO_LIBS/libPocoJSON.a -Wl,-Bdynamic -o BCMain
К сожалению, это дает ошибки о некоторых неопределенных ссылках на такие символы, как:
Poco::Logger::get(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
хотя Poco::Logger::get(std::string const&)
на самом деле определено в libPocoFoundation.a
.
Теперь, если я попытаюсь связать с общей версией базовой библиотеки, она сработает:
g++ BCCMain.o -L$_POCO_LIBS -Wl,-Bstatic $_POCO_LIBS/libPocoFoundation.a $_POCO_LIBS/libPocoUtil.a $_POCO_LIBS/libPocoXML.a $_POCO_LIBS/libPocoJSON.a -Wl,-Bdynamic -lPocoFoundation -o BCMain
Статические и общие версии библиотек имеют одинаковые символы, поэтому мне трудно понять, что я делаю неправильно.
Убунту/Линаро. г++ 4.6.3