Boost ожидает, что проект будет построен с помощью макроса BOOST_NO_EXCEPTIONS
undefined или определит саму функцию boost::throw_exception
.
Начиная с <boost/throw_exception.hpp>
в версии 1.34.1:
namespace boost
{
#ifdef BOOST_NO_EXCEPTIONS
void throw_exception(std::exception const & e); // user defined
#else
//[Not user defined --Dynguss]
template<class E> inline void throw_exception(E const & e)
{
throw e;
}
#endif
} // namespace boost
Заголовки конфигурации Boost будут определять, определять макрос или нет.Похоже, это сводится к компилятору, который вы используете, но могут быть и другие факторы.Посмотрите в папке boost/config/compiler/
заголовочный файл, соответствующий вашему компилятору, затем найдите в нем BOOST_NO_EXCEPTIONS
.Вокруг #define
должны быть некоторые условия, помогающие объяснить, когда Boost его определяет.Возможно, вам удастся настроить сборку, чтобы избежать определения и избежать ошибки компоновщика, с которой вы столкнулись.
Если вы не можете изменить конфигурацию компилятора, чтобы избежать определения, то, вероятно, вы ушлиопределяя boost::throw_exception(std::exception const & e)
себя где-то в коде OpenOffice.Однако я не знаком с этим кодом, поэтому не могу дать четкого предложения, куда он должен идти.